MySQL 可以通过以下方式优化分页效率
更多精彩
- 更多技术博客,请移步 asing1elife’s blog
问题
- MySQL 分页查询多行会导致查询出很多无用数据后再进行筛选,效率低下
- 例如
limit 1000, 10
会排序出前 1010 行数据,然后取最后 10 行
解决
- 子查询先利用覆盖索引查询到满足条件的主键数据,再利用主键回表查找对应记录
SELECT
co.name,
co.point
FROM
pt_course co
INNER JOIN (
SELECT
id
FROM
pt_course
LIMIT 1000, 10
) coo
ON co.id = coo.id;