【发布时间】:2023-04-10 18:16:02
【问题描述】:
我有一个超过 100k 行的数据集,所以它不是很小,但也不是很大。在对结果进行分页时,当您转到更高的页面时,它会逐渐变慢。换句话说,这个查询:
SELECT * FROM items WHERE public = 1 ORDER BY name LIMIT 0,10
执行速度比
快得多SELECT * FROM items WHERE public = 1 ORDER BY name LIMIT 10000,10
我在 name 上有一个索引,我曾经在 public 上有一个索引,但我删除了它,因为它似乎更降低了性能。
这里有什么想法吗?有没有一种简单的方法可以加快速度?我正在考虑取消查看更高页面的功能,因为除了机器人之外,没有人真正浏览过第 2 页或第 3 页,而且他们有更简单的方法可以找到该内容。
【问题讨论】:
-
实际上它只有通过浏览所有数千个页面来产生巨大负载的机器人。
-
按 varchar 排序没有帮助...
标签: mysql pagination