关于mysql中order by查询的问题
select * from tb_order ORDER BY order_date,id limit 700000,10;
select id from tb_order ORDER BY order_date,id limit 700000,10;
这两条语句,第一条执行138秒,第二条7秒,order_date没有索引,explain结果都是ALL,为啥差距这么大?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
看下都时间都耗在哪了?
一般来说 * 和指定列的性能差距不该这么大,看看是不是你这个表里有存 blob 之类的大字段,时间都耗费在网络传输了上了?
是覆盖索引,只查id的时候不用回表。
刚才重启了电脑,又试了下,时间一个90+秒,一个2秒
回表问题。
select id 直接在索引树中取,不需要查询数据库
select * 先在索引树取得索引,再去数据库查询所有字段数据。