侧边栏壁纸
博主昵称
流苏小筑

步伐虽小,密而不止

优化分页查询

2024年04月02日 12阅读 0评论 0点赞

优化分页查询

一般分页查询时,通过创建覆盖索引能够比较好地提高性能。一个常见又非常头疼的问题就是imit2000000,10,此时需要MySQL排序前2000010记录,仅仅返回2000000-2000010的记录,其他记录丢弃,查询排序的代价非常大。

EXPLAIN SELECT * FROM student LIMIT 2000000,10;

m4f9sn6z.png

优化思路一

在索引上完成排序分页操作,最后根据主键关联回原表查询所需要的其他列内容。

EXPLAIN SELECT * FROM student t,(SELECT id FROM student ORDER BY id LIMIT 
2000000,10) a WHERE t.id = a.id;

m4f9t190.png

优化思路二

该方案适用于主键自增的表,可以把Limit 查询转换成某个位置的查询 。

EXPLAIN SELECT * FROM student WHERE id > 2000000 LIMIT 10;

m4f9tddk.png

0

—— 评论区 ——

昵称
邮箱
网址
取消