您好,匿名用户
随意问技术百科期待您的加入

SQL查询唯一字段时加上LIMIT 1会不会更快?

0 投票

比如,用户的username是无重复的,如果查询某个username,可能他会把整个表都搜一遍。
如果我加入了LIMIT 1,他会不会在搜到这个username后立即停止搜索并返回呢?
这种情况下速度是不是就会快一点啊?

用户头像 提问 2012年 12月1日 @ Blitzcrank 上等兵 (358 威望)
分享到:

1个回答

0 投票

wherelimit 都具有 避免全表扫描 的功能 (mysql),区别在于:where能够充分利用 索引,而limit 能够限制查询行数

limit的存在主要是为了防止 全表扫描,如果一个语句本身可以得出不用全表扫描,有没有limit 那么性能的差别是不大的,比如唯一索引,主键 [没试验过,NND]

对于偏移量offset较大的查询,建议用好where语句,来避免全表扫描;因为limit本身没有利用索引的缩小范围能力

对于任何一个查询,首先应该想到的是如何利用 where 语句来 缩小范围,然后利用limit限制返回行数

用户头像 回复 2012年 12月1日 @ Riven 上等兵 (334 威望)
提一个问题:

相关问题

0 投票
1 回复 44 阅读
用户头像 提问 2012年 12月1日 @ Zyra 上等兵 (289 威望)
0 投票
1 回复 31 阅读
用户头像 提问 2013年 12月5日 @ Miss Fortune 上等兵 (418 威望)
+3 投票
1 回复 378 阅读
用户头像 提问 2012年 12月8日 @ 匿名用户
0 投票
1 回复 29 阅读
用户头像 提问 2012年 12月1日 @ Anivia 上等兵 (276 威望)
0 投票
1 回复 125 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...