为什么select id from T limit 100000000,1 比select * from T limit 100000000,1要快

那就加个鸡腿吧 发布于 10/16 12:03
阅读 863
收藏 1

【华为云1024程序员节·向云而生】预约直播 抽14件华为电子产品礼包!>>>

如题

加载中
0
魔力猫
魔力猫

只走主键索引和走全表,谁快?哪怕这个表没有主键索引,只查ID一个字段,比整个表全字段查询,也是快的。

魔力猫
魔力猫
回复 @那就加个鸡腿吧 : 那可能是我理解错了,抱歉MySQL用的确实少,能不用这个数据库我一般都不考虑它。而且主键上用大于号也是比较特别的操作,看来我的理解和数据库的引擎不太一样。
那就加个鸡腿吧
那就加个鸡腿吧
大佬,你看下我在评论区发出来的图,我这边执行起来是没有多大区别的
魔力猫
魔力猫
回复 @那就加个鸡腿吧 : 这两条,很可能返回的数据不一样。如果不明确排序字段,SQL是不保证每次返回的数据顺序一致的。如果假设都是按照id排序,而且保证id的顺序都是增长而不是无序,那么第二条快,而且是极快。
那就加个鸡腿吧
那就加个鸡腿吧
select * from file limit 100000000, 1; select * from file t where t.id >(select id from file limit 100000000, 1) limit 0, 1; 那这两条语句呢
0
那就加个鸡腿吧
那就加个鸡腿吧

为啥实际情况没多大区别

那就加个鸡腿吧
那就加个鸡腿吧
回复 @kis龍 : 这已经是两条了呀
kis龍
kis龍
对比呢? 另一个也发出来悄悄
0
阳光下的豚2011
阳光下的豚2011
因为select id 不用回表,而select *要
那就加个鸡腿吧
那就加个鸡腿吧
你看我发的两张图,这两条sql的查询所需时间差别并不大
0
花间一壶酒90
花间一壶酒90
这个问题也太难了,必须工作5年以后才懂
那就加个鸡腿吧
那就加个鸡腿吧
。。。。
-1
幻舞奇影
幻舞奇影

limit 100000000,1需要扫描前100000000-1行,直到找到100000000行开始返回这一行数据,浪费了100000000-1行的心情

返回顶部
顶部