有人可以解释一下,如果我想获取最后 10 条记录,将“LIMIT”添加到 MySQL 查询会使其更快吗?
喜欢
SELECT
*FROM
`table`ORDER BY id DESCLIMIT 50;
有没有其他方法可以获取最后 10 条记录,或者速度更快?
limit 的问题是否必须订购全部 表中的行在只返回最后 50 行之前,所以它总是会很慢,并且会随着表的增长而变慢(不可扩展)。
获得最后 50 个的最快方法是:
SELECT
*FROM
`table`WHERE id > (SELECT MAX(id) FROM `table`) - 50
这将使用 id 上的索引获得最大 id 并再次获得前 50 名。
您还应该尝试稍微复杂一点但可能更好地优化的方法:
SELECT
*FROM
`table`WHERE id BETWEEN (SELECT MAX(id) FROM `table`) - 49
AND (SELECT MAX(id) FROM `table`)
比较实际运行时间并选择最快的。
关于mysql - 要获取最后 10 条记录,将 'LIMIT' 添加到 MySQL 查询使其更快?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/48071327/