关于分页插件PageHelper的一些问题

来源:6-12 文章列表展示【内容管理】

慕勒3498910

2023-03-27

老师:你好。最近工作中正好也在写一些列表方面的接口,正好也可以用上咱们这边授课中所提到的PageHelper插件了,但是,今天开发要求中,突然多了一个要求,就是说今后带有分页查询的列表功能,都禁止使用PageHelper了,就用传统手工分页的代码写法来实现,原因是:PageHelper是会一下子拿到所有的数据后,再通过代码层做内存分页的,内存压力会比较大。我这边觉得用不用这个插件本身,肯定有好的方面(比如代码更简洁了),也有不好的方面,这个是毋庸置疑的。但是,今天给到我们这边的这个禁用的原因,内存压力会比较大,我觉得不是很合理,因为我看了下我们工作中的项目,包括咱们这边的课程项目里面,其实,分页数据的获取,还是用了SQL层面的分页实现语句,并不是我们这边宣传的是一下子都从数据表中把数据都拿回来之后,再通过代码层面做的内存分页来实现拿到分页数据的。这块,想请教一下老师对这个插件的一些见解。咱们课程项目里面,应用PageHelper涉及到的分页SQL日志语句如下:

==>  Preparing: SELECT count(0) FROM article WHERE ((is_appoint = ? AND is_delete = ? AND article_status = ?)) 
==> Parameters: 0(Integer), 0(Integer), 3(Integer)
<==    Columns: count(0)
<==        Row: 46
<==      Total: 1
==>  Preparing: SELECT id,title,category_id,article_type,article_cover,is_appoint,article_status,publish_user_id,publish_time,read_counts,comment_counts,mongo_file_id,is_delete,create_time,update_time,content FROM article WHERE ( ( is_appoint = ? and is_delete = ? and article_status = ? ) ) order by publish_time DESC LIMIT ? 
==> Parameters: 0(Integer), 0(Integer), 3(Integer), 15(Integer)

需要先查询总条数count(0),然后再SQL分页查询需要获取的单页数据,我觉得就是最常规的分页数据的获取流程而已。

写回答

1回答

风间影月

2023-03-27

你们公司的分页插件问题,和咱们这个不一样。你们是假分页,肯定不行的。

0
2
风间影月
回复
慕勒3498910
问一下你们的技术总监或者架构师看看吧,我们自己项目都是用的pagehelper。部分项目用的mysql的limit手写分页。
2023-03-27
共2条回复

Spring Cloud 进阶 Alibaba 微服务体系自媒体实战

一课收获分布式系统开发,微服务核心技术和中间件企业生产落地

1113 学习 · 896 问题

查看课程