请问为什么两条只是LIMIT不一样的sql语句,查询的差距这么大?

发布于 2022-09-05 10:13:10 字数 323 浏览 30 评论 0

图片描述

索引如下图:
图片描述

我在LIMIT 0,2 时候,无法运行完,会卡死数据库。但LIMIT 0,20就可以很快的查询出来。

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

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

发布评论

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

评论(2

筱果果 2022-09-12 10:13:11

当索引的样本数据范围越大,索引的效率越高。当你其他的条件一致的时候,limit的范围可能会引起索引样本的范围限制。--个人理解

ぺ禁宫浮华殁 2022-09-12 10:13:10

走的索引不一样,决定了要检索的数据量多少
1、当你要取的数据很少的时候,mysql认为走start_time的索引很快就能找够满足条件的数据,结果实际上满足条件的数据按照start_time倒序排列需要检索很多数据,所以会比较慢。
2、而当你limit20的时候mysql认为按照其他索引可能需要扫描很多的记录才能找到你要的结果,所以走了city_id的索引。
so这种情况你可以尝试一下按照start_time倒序排列后找两条最近的数据出来,按这些字段的值再去用limit 0,2检索看看是不是很快,如果是的话那就可以确定是这个原因。

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