すのはら荘春原庄的雪

大数据量下 PageHelper 分页查询性能问题与分析

Toretto·2022-06-24 11:19·2660 次阅读

大数据量下 PageHelper 分页查询性能问题与分析

大数据量下 PageHelper 分页查询性能问题与分析

pagehelper之百万级数据查询优化

开启debug源码探寻之旅。

一、PageHelper是通过limit拼接sql实现分页的;

重构pagehelper

低效率查询语句:select * from user where age = 10 limit 100000,10;

高效率查询语句:

SELECT a.* FROM USER a
INNER JOIN
(SELECT id FROM USER WHERE age = 10 LIMIT 100000,10) b
ON a.id = b.id;

二、当数据量达到百万级别以后,PageHelper的count的效率就多余了,每一次翻页就需要做一次count

pagehelper怎么关count呢?也比较简单:

PageHelper.getLocalPage().setCount(false);

解决这种情况:

相同条件的count可以做一个缓存操作,其实就是有两种方案了;

配合前端,不用展示所有的条数;

如果需要所有条数单独做查询并缓存,也并不适合短时间内变化较大的数据。

参考网址:pagehelper之百万级数据查询优化   

浅析pagehelper分页原理   方法重载

就是方法名称重复,加载参数不同。

一.方法名一定要相同。
二.方法的参数表必须不同,包括参数的类型或个数,以此区分不同的方法体。
1.如果参数个数不同,就不管它的参数类型了!
2.如果参数个数相同,那么参数的类型必须不同。
三.方法的返回类型、修饰符可以相同,也可不同。

但是如果你能轻松上数仓、es、opensearch、大数据等等这些,以上就都可以忽略。

简单介绍数仓、es、opensearch、大数据:

参考网址:SpringBoot 集成ElasticSearch的几种方式 

该网址涉及很多开发应用工具:

lombok、hutool、knife4j;

如果你也在使用 Swagger,可以考虑使用 Knife4j,它不仅有更强大的 UI,更有多达 29 项的增强功能,它们并不是替代关系,就像 Mybatis Plus 和 Mybatis 的关系一样,它能助你更进一步提高开发生产力。

posted @   subtlman  阅读(2660)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示