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

发布于 2022-08-24 11:47:15 字数 142 浏览 14 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

浅唱々樱花落 2022-08-31 11:47:15

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

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

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

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

旧故 2022-08-31 11:47:15

如果没有加索引,加了limit反而更慢。刚才试了一下
QQ截图20121113112639.png

勿忘初心 2022-08-31 11:47:15

如果username字段建立了unique索引,加limit就没有意义。因为对于唯一索引数据库的实现是B-Tree查找,精确查询到唯一一个结果

盛夏已如深秋| 2022-08-31 11:47:15

limit只是控制了返回的行数,不控制实际查询的。可以用explain检验

心病无药医 2022-08-31 11:47:15

遇到数据量比较大的表用limit会搞死数据库的

绮筵 2022-08-31 11:47:15

以前后到都说加LIMIT 1会加快速度

撩动你心 2022-08-31 11:47:15

为什么不利用where的唯一索引(比如username)。limit 只是限制显示的条目吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文