zoukankan      html  css  js  c++  java
  • MySQL 分页优化

    MySQL 用 LIMIT offset, length 进行分页。但当表记录数很大,会发现大页数的查询时间明显比小页数的查询时间大。

    MySQL并不是跳过 offset 行,而是取 offset+N 行,然后返回放弃前 offset 行,返回 N 行,当 offset 特别大的时候,效率就非常的低下

    解决方式一:在业务上限制总页数。

    解决方式二:借助索引,快速定位。

    方式二是比较常用的。

    示例:device_version_stat 表记录数很大,如果需要把该表的数据导出到 excel ,后面的数据查询会相对慢。如果是按 id 降序,可以借助 id 主键先快速定位到查询范围,

    第一页的 maxId = null,第二页的 maxId = 具体的某个值1,第二页的 maxId = 具体的某个值2,...

    在查询时带上以下条件,查询效率就会高很多,

    <if test="@Ognl@isNotEmpty(minId)">
        AND id > #{minId}
    </if>
    <if test="@Ognl@isNotEmpty(maxId)">
        AND id &lt; #{maxId}
    </if>

     

  • 相关阅读:
    git使用
    silverlight与wcf双向通讯 例子
    Oracle 存储过程
    C# 视频教程
    佩服的技术大牛 “赵劼”
    setTimeout setInterval
    js闭包
    MVC Razor视图引擎控件
    MVC json
    springboot创建多环境profile打包
  • 原文地址:https://www.cnblogs.com/ken-jl/p/8487648.html
Copyright © 2011-2022 走看看