简而言之:一个包含超过1600万条记录的表[大小为2GB].使用ORDER BY*primary_key时,使用SELECT的LIMIT偏移越高,查询变得越慢
所以
SELECT * FROM large ORDER BY `id` LIMIT 0, 30
Run Code Online (Sandbox Code Playgroud)
远远不及
SELECT * FROM large ORDER BY `id` LIMIT 10000, 30
Run Code Online (Sandbox Code Playgroud)
这也只能订购30条记录.所以这不是ORDER BY的开销.
现在,当获取最新的30行时,大约需要180秒.如何优化该简单查询?
在使用大偏移LIMIT的mysql 时遇到性能问题SELECT:
SELECT * FROM table LIMIT m, n;
Run Code Online (Sandbox Code Playgroud)
如果偏移m量大于1,000,000,则操作非常慢.
我必须使用limit m, n; 我不能用类似的东西id > 1,000,000 limit n.
如何优化此声明以获得更好的性能?