MySQL分页查询优化

Love The Way You Lie 2023-02-28 12:56 250阅读 0赞

利用延迟关联或者子查询优化超多分页场景。
说明:MySQL 并不是跳过 offset 行,而是取 offset+N 行,然后返回放弃前 offset 行,返回 N 行,那当offset 特别大的时候,效率就非常的低下,要么控制返回的总页数,要么对超过特定阈值的页数进行 SQL

优化前sql:

  1. SELECT * FROM table1 where 条件 limit 100000,20;

优化后sql:

  1. SELECT a.* FROM 1 a, (select id from 1 where 条件 LIMIT 100000,20 ) b where a.id=b.id

优化思想:
通过使用覆盖索引查询返回需要的主键,再根据主键关联原表获得需要的数据,而不是通过二级索引获取主键再通过主键去遍历数据页。

发表评论

表情:
评论列表 (有 0 条评论,250人围观)

还没有评论,来说两句吧...

相关阅读

    相关 查询优化

    文章目录 分页查询优化 简单分页 子查询优化 直接利用索引定位优化 分页查询优化 > 当需要从数据库查询的表的数据量

    相关 MySQL查询优化

    当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询。对于数据库分页查询,也有很多种方法和优化的点。下面