美文网首页
limit语句查询优化

limit语句查询优化

作者: 吕艳凯 | 来源:发表于2020-04-14 15:38 被阅读0次
limit语句查询
SELECT * FROM acpf_bt_questions limit 0,20
SELECT * FROM acpf_bt_questions limit 2000000,20

分页查询一般使用(页数-1)* 页数据量得到偏移量
在limit查询中,是先找到偏移量所在行,然后在查询返回所需结果集行数
当偏移量慢慢增大,找到偏移量所在行需要扫描的数据就会越多,响应的就会越来越慢,当有几百万条上千万条数据时,时间开销非常的大

如何进行优化?

使用子查询的方式优化
偏移量查询放在子查询中,使用覆盖索引提高查询效率,子查询得到起始id
在外部查询,直接指定了起始id范围,避免了大量扫描数据,从而优化了查询效率

SELECT * FROM acpf_bt_questions WHERE id >= (select id from acpf_bt_questions limit 2000000,1) limit 20

当然也可以利用查询连表的方式,原理一样

需要注意的是:
只使用limit的时候,取出来的结果集数据是乱序的
用order by id <DESC>即可解决
另外:当order by 对含有相同值列排序时,会出现乱序现象,需要使用id自增主键排序
具体可参见:https://www.jianshu.com/p/66bfc73bfe05

相关文章

  • mysql分页优化

    Mysql limit分页语句用法 如何优化limit 当一个查询语句偏移量offset很大的时候,如select...

  • SQL优化

    连接的优化优化连接的一些要点GROUP BY、DISTINCT、ORDER BY语句优化优化子查询优化limit优...

  • limit语句查询优化

    limit语句查询 分页查询一般使用(页数-1)* 页数据量得到偏移量在limit查询中,是先找到偏移量所在行,然...

  • 查询优化limit 1避免全表扫描

    在某些情况下,如果明知道查询结果只有一个,SQL语句中使用LIMIT 1会提高查询效率。 查询优化limit 1避...

  • 数据库_优化

    五、优化 1.查询语句不同元素(where、jion、limit、group by、having等等)执行先后顺序...

  • MySQL优化

    一、SQL语句优化 (1)使用limit对查询结果的记录进行限定 (2)避免select *,将需要查找的字段列出...

  • 18.MySQL的SQL优化

    一、SQL语句优化 (1)使用limit对查询结果的记录进行限定, 同时使用order by 索引列(2)避免se...

  • mysql日常问题整理

    1、limit 效率 1)limit语句的查询时间与起始记录的位置成正比2)mysql的limit语句是很方便,但...

  • 2019-06-24

    一、分页查询(sql语句limit) sql语句+limit m(n-1)开始点,(m)显示条数 m:每...

  • MySQL优化

    SQL语句优化 (1)使用limit对查询结果的记录进行限定 (2)避免select *,将需要查找的字段列出来 ...

网友评论

      本文标题:limit语句查询优化

      本文链接:https://www.haomeiwen.com/subject/zzktvhtx.html