MySQL 分页查询性能比较

2017-04-01 10:14:43 +08:00
 zioc

请问这两种写法哪一种好呢?

SELECT * FROM API_LOG a JOIN (select ID from API_LOG LIMIT 0, 10) b ON a.ID = b.ID

SELECT * FROM API_LOG WHERE ID IN ( SELECT * FROM (SELECT ID FROM API_LOG LIMIT 0, 10) t)

5109 次点击
所在节点    MySQL
24 条回复
satifanie
2017-04-02 16:14:38 +08:00
单看 也看不出来。 不如直接 Explain 一下。看一下 分析的结果就知道了
luckyduck
2017-04-03 19:17:57 +08:00
@surfire91 覆盖索引的意思就是指直接通过索引的查询就能获取到数据。例如: select id from table 这个 id 是主键,仅仅通过索引查询就能返回结果, select * from table 这里则需要先查到主键,再通过主键获取剩余字段的值,这也就是为什么前者比后者快。
panzhc
2017-04-05 18:56:26 +08:00
garodie
2017-04-17 07:12:27 +08:00
现代陈世美,良心被狗吃了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/351908

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX