【发布时间】:2018-12-08 20:58:07
【问题描述】:
网上已经有很多帖子了,只是想了解一些让我感到困惑的细微差别!
如果将 LIMIT row_count 与 ORDER BY 结合使用,MySQL 将停止排序为 一旦找到排序结果的前 row_count 行, 而不是对整个结果进行排序。如果订购是通过使用 索引,这非常快。
它将首先订购,然后获取前 20 个。数据库也将 在 ORDER BY 之前处理 WHERE 子句中的任何内容。
从问题中获取相同的查询:
SELECT article
FROM table1
ORDER BY publish_date
LIMIT 20
假设表有 2000 行,其中 query 预计将返回 20 行,现在,看着 mysql ref ....stops sorting as soon as it has found the first row_count rows.... 让我感到困惑,因为我觉得它有点模棱两可!!
为什么是stops sorting? limit 子句不是应用于通过order by 子句返回的已排序数据(假设它是non-indexed 列)还是我的理解错误,SQL 是limiting first然后排序!!??
【问题讨论】:
标签: mysql sql-order-by limit