分页原理
分页在使用时的分类
物理分页:
在操作数据库中的表时,sql语句中使用了limit ?,?,此时sql语句返回的结果是分页结果
逻辑分页:
依赖程序的代码,其原理为:通过sql语句将数据库表中的所有数据都查询出,之后将数据保存在内存中,最终要显示的数据若涉及到分页,到内存中去查找数据返回.通过以上原理得出,逻辑分页在对数据库表的操作上没有limit
物理分页和逻辑分页的区别?
数据库压力:
物理分页对数据库查询操作次数多,数据库压力会更大点,相对而言,逻辑分页对数据库的压力会小
对服务器的压力:
物理分页对服务器的压力相对而言较小,逻辑分页因为要在内存存储大量数据,对服务器压力会大
什么情况应该选择哪种分页?
物理分页:数据量大,数据稳定性差时使用,来实现实时更新数据
逻辑分页:数据量小,数据稳定性高时使用,此时可以使用逻辑分页
实际工作中分页的实现:PageInfo
通常会使用插件:目前市面上使用率较高的是mybatis的插件PageHelper
PageHelper的使用:
需要导入该插件的依赖
在代码中使用PageHelper的api方法实现分页
使用pageInfo和不使用pageInfo的区别
使用PageInfo对象,可以方便地封装分页信息,包括总记录数、当前页码、每页显示记录数等。同时,PageInfo对象也提供了一些便捷的方法,如获取总页数、是否是第一页、是否是最后一页等等,极大地提升了分页查询的开发效率。如果不使用PageInfo对象,那么在进行分页查询时,需要手动计算分页信息,包括总记录数、总页数、当前页码、每页显示记录数等,这样会增加代码复杂度和开发难度。同时,在返回查询结果时,也需要手动将分页信息封装到返回对象中,较为繁琐。因此,使用PageInfo对象可以更加方便地进行分页查询和返回分页信息,提升开发效率,减少出错的可能性。