PageInfo 分页优化

PageInfo 分页优化

mybatis PageInfo分页插件在当前项目开发中被广泛使用,但是随着数据量的增多以及业务的复杂性,PageInfo分页的效率会大大降低.其中原因是因为每次请求分页的数据都会先请求count.这样的话我们就会花费2T+的时间,上述的情况下对于用户体验是极差的.

优化方向

1.只做一次count查询
startPage(int pageNum, int pageSize, boolean count)
其中count 设置为false将不会进行count的查询,实施的过程为:
第一次请求:
pages=0;
if pages == 0 => boolean count = true;//进行数量查询
...查询过程...
pageInfo的pages为总页数.前端做保存或者传递给后台作为返回结果也可以.
第二次请求:
请求参数pages = 第一次请求返回结果中的pages;
if pages > 0 => boolean count = fasle;//不进行进行数量查询
...查询过程...
pageInfo.setPages(pages);
....
之后前端只需要根据pages来判断是否需要进行下一页的请求
2.不做count查询
startPage(int pageNum, int pageSize, boolean count)
其中count 设置为false将不会进行count的查询,实施的过程为:
将参数设置为false后,每次查询结果中:
如果 pageInfo.getSize == pageSize 那么我们默认存在下一页,将pageInfo.setHasNextPage(true)
否则pageInfo.setHasNextPage(false)

总结

上述两种方法都有缺点以及优点. 第一种第一次请求的时候会很慢. 第二种无法获得详细的分页信息.而且可能会造成最后一次请求多余.

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值