zoukankan      html  css  js  c++  java
  • MYSQL分页查询偏移量过大的优化方案

    前提:

    出现这种问题的原因是因为mysql在进行分页的时候,并不知直接插rows的数据,而是把offset和rows的数据全部查出来,然后再将offset的数据扔掉,返回rows的数据;

    第一种解决办法:

    symptom_id是主键,表里面221W数据

    优化前####### 42s                     

    select * from symptom ORDER BY create_date desc limit 2210000, 15   

     内连接优化后####### 7s

    SELECT t1.* FROM symptom t1

    INNER JOIN ( SELECT symptom_id FROM symptom ORDER BY create_date DESC LIMIT 2210000, 15 ) t2

    ON t1.symptom_id = t2.symptom_id

    7秒钟的时间大多花费在排序字段上,在create_date上建立索引后总耗时 0.5s !!!!!!!!!!!!!

    第二种解决办法:

    在业务允许的情况下限制页数,可以看到百度和google都是这么做的;

    第三种解决办法:

    如果id是连续自增的,可以用

    select * from symptom where id > 1250000 limit 15

  • 相关阅读:
    第一篇正式文章 随便聊聊吧
    CSS 28 块之间的空格
    CSS 27 贴在下方
    CSS 26 左右固定
    CSS 25 垂直居中
    CSS 24 左侧固定
    CSS 23 水平居中
    CSS 22 显示方式
    CSS 21 浮动
    CSS 20 相对定位
  • 原文地址:https://www.cnblogs.com/zhanzhuang/p/13063681.html
Copyright © 2011-2022 走看看