美文网首页
PageHelper分页框架 自动统计总记录数性能问题优化

PageHelper分页框架 自动统计总记录数性能问题优化

作者: 我的小鱼干去哪儿了 | 来源:发表于2022-07-30 17:29 被阅读0次

1. 问题: PageHelper自动统计总记录数(即count()方法)时存在性能问题

PageHelper.startPage(request.getPage(), request.getSize(),
                      request.isReturnTotal())
                    .doSelectPageInfo(() -> getEntitiesByCondition(condition, sort));

PageHelper 目前自动count()总记录数时对于数据量大的表或者复杂SQL存在性能问题,
框架生成count SQL的方式 是 对查询SQL直接在外面包一层

 select count(0) from (select * from yousql order by xxxx)

2. 解决

可以使用自定义count SQL的方式来处理这个性能问题:

    <select id="queryData" resultMap="BaseResultMap">
        select * from table where xxxx
        <if test="sort != null">
            order by ${sort}
        </if>
    </select>

    <select id="queryData_COUNT" resultType="java.lang.Long">
        select count(0) from table where xxxx
    </select>

具体参看如下截图

wecom-temp-91147a790be857404cfb71698176a3ab.png

相关文章

  • PageHelper分页框架 自动统计总记录数性能问题优化

    1. 问题: PageHelper自动统计总记录数(即count()方法)时存在性能问题 PageHelper 目...

  • Mybatis-Plus分页查询不返回总数total

    设置searchCount属性为false示例 同理 分页查询返回总记录数的结果如下 分页查询不返回总记录数的结果如下

  • 45.集群调优策略—deep Paging 性能优化

    45.1 deep Paging 性能优化 深度分页性能问题ES中有个配置: index.max_result_w...

  • 关于分页

    分页的总页数算法 设总记录数:totalRecord每页最大记录数:maxResult 算法一:totalPage...

  • D4 springboot分页查询

    使用PageHelper分页插件实现分页 https://pagehelper.github.io/[http...

  • JS的分页算法

    分页的总页数算法 分页算法 分页存储过程或者页面分页中的分页算法: int pagesize // 每页记录数 i...

  • # PageHelper分页插件

    PageHelper分页插件 1 PageHelper作用 官网:https://pagehelper.githu...

  • Mybatis 分页查询

    该篇博客记录采用pagehelper分页插件实现Mybatis分页功能 一、依赖 pom.xml 二、配置 app...

  • Django-12-分页

    1.原生分页 使用切片的方式,获得总记录数,根据总记录数计算总结果数,对结果记录进行切片处理 2.使用pagina...

  • 分页

    分页的原理 1.计算总记录数2.计算总页数3.显示区间段的记录 即每页的数据 Mybatis在Dao层实现分页 使...

网友评论

      本文标题:PageHelper分页框架 自动统计总记录数性能问题优化

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