Mysql LIMIT 运算符 - 不使用它时效率相同吗?
为什么当我使用 LIMIT 时,mysql 检查相同的行数?我该如何解决这个问题?
How is it that when i use LIMIT, mysql checks the same number of rows? and how do i solve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
首先处理Where 子句。找到匹配项后,限制就会应用于结果集,因此必须先评估所有行以确定它们是否符合条件,然后才能应用限制。
The Where clause is processed first. Once the matches are found, the limit is applied on the result set, so all of the rows have to be evaluated to determine if they match the conditions before the limit can be applied.
解释输出具有误导性。 Mysql 将使用 where 子句等评估查询,但在找到 LIMIT 数量的匹配行(本例中为 1)后它将停止。这是 mysql 的一个已知问题: http://bugs.mysql.com/bug.php ?id=50168
为了澄清...限制子句将按预期工作...只是解释输出不准确。
The explain output is misleading. Mysql will evaluate the query using the where clause and such, but it'll stop after it find LIMIT number of matching rows (1 in this case). This is a known issue with mysql: http://bugs.mysql.com/bug.php?id=50168
To clarify... the limit clause will work as expected... it's only the explain output that's inaccurate.