• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Mysql百万级分页优化技巧

    普通分页

       数据分页在网页中十分多见,分页一般都是limit start,offset,然后根据页码page计算start

    select * from user limit 1,20

       这种分页在几十万的时候分页效率就会比较低了,MySQL需要从头开始一直往后计算,这样大大影响效率

    SELECT * from user limit 100001,20; //time 0.151s
    explain SELECT * from user limit 100001,20;

      我们可以用explain分析下语句,没有用到任何索引,MySQL执行的行数是16W+,于是我们可以想用到索引去实现分页

       优化分页

       使用主键索引来优化数据分页

    select * from user where id>(select id from user where id>=100000 limit 1) limit 20; //time 0.003s

      使用explain分析语句,MySQL这次扫描的行数是8W+,时间也大大缩短。

     explain select * from user where id>(select id from user where id>=100000 limit 1) limit 20; 

         总结

      在数据量比较大的时候,我们尽量去利用索引来优化语句。上面的优化方法如果id不是主键索引,查询效率比第一种还要低点。我们可以先使用explain来分析语句,查看语句的执行顺序和执行性能。

    补充:mysql中百万级别分页查询性能优化

    前提条件:

    1.表的唯一索引

    2.百万级数据

    SQL语句:

    select
         c.*
         FROM
      (
      SELECT
       a.logid
      FROM
       tableA a
      where 1 = 1
         #if phone?exists phone!=""> 
          AND a.phone like "%":phone"%" 
         /#if>
       ORDER BY
        a.create_time DESC
       limit :startIndex,:maxCount
      ) b,tableA c
      where 1 = 1 AND b.logid = c.logid

    其中:

    1:startIndex:表示查找数据的开始位置

    2:maxCount:表示每页显示数据个数

    3:a.create_time DESC:降序排列,需要在create_time建立索引

    4:limiit放在里面,而不要放在查询的外面,这样效率提升很多

    5:logid:唯一索引

    您可能感兴趣的文章:
    • 如何优化Mysql千万级快速分页
    • MySQL 百万级分页优化(Mysql千万级快速分页)
    • Mysql limit 优化,百万至千万级快速分页 复合索引的引用并应用于轻量级框架
    • Mysql limit 优化,百万至千万级快速分页 复合索引的引用并应用于轻量级框架
    • mysql limit分页优化方法分享
    • mysql 分页优化解析
    上一篇:Mysql利用group by分组排序
    下一篇:MySQL的隐式类型转换整理总结
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Mysql百万级分页优化技巧 Mysql,百万,级,分页,优化,