RSS
菜单

MySQL 分页深翻页怎么优化?

深分页问题:LIMIT 1000000, 20 要扫描前 100 万行再丢弃(offset 越大越慢)。优化方案:① 延迟关联(子查询先取主键再 join):SELECT * FROM t JOIN (SELECT id FROM t ORDER BY id LIMIT 1000000, 20) tmp ON t.id=tmp.id——子查询走覆盖索引少回表;② 游标/键集分页(推荐):WHERE id > 上次最大id ORDER BY id LIMIT 20(利用索引定位,但要求排序稳定、不能随意跳页);③ 只返回需要的列(避免 SELECT *);④ 加缓存/限制最大页数(业务上避免超深分页);⑤ 数据归档。

下载推广海报

圈内讨论推广海报

《MySQL 分页深翻页怎么优化?》完整推广海报
一起交流

全部回复 0

分享经验,让问题更进一步

讨论,从你的观点开始

还没有回复,欢迎补充经验或分享不同的思路。