Springboot2.1.5整合PageHelper分页插件效率问题⼤家都知道,Mysql分页都会使⽤count(1)查询统计总数时,PageHelper 插件是在我们的查询语句的基础上嵌套⼀层,如:
SELECT COUNT(*) FROM (主sql)
在DB数据量⼩的时候,效率⾮常快,但数据量变⼤之后, 会越来越慢。。
优化SQL
增加⼿写 count 查询⽀持
分页查询插件增加countSuffixcount 查询后缀配置参数,该参数是针对PageInterceptor配置的,默认值为_COUNT。
分页插件会优先通过当前查询的 msId +countSuffix查⼿写的分页查询。
如果存在就使⽤⼿写的 count 查询,如果不存在,仍然使⽤之前的⽅式⾃动创建 count 查询。
例如,如果存在下⾯两个查询:
改写业务SQL
<select id="queryList_COUNT" parameterType="map" resultType="Long">
SELECT COUNT(DISTINCT id)
t_comment
</select>
<select id="queryList" parameterType="map" resultType="xxxx">
SELECT name,type
from t_comment
</select>
上⾯⽅法执⾏输出的部分⽇志如下:
改善之后的SQL, 效率提⾼了许多!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论