• 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>

     

  • 相关阅读:
    4.比赛F
    4.M
    4.H
    4.J
    4.G
    4.D
    4.C
    UVA 215 Spreadsheet Calculator (模拟)
    POJ 3469 Dual Core CPU(最小割模型的建立)
    POJ 3281 Dining(网络流最大匹配)
  • 原文地址:https://www.cnblogs.com/ken-jl/p/8487648.html
Copyright © 2020-2023  润新知