1 分页的使用场景
分页功能在网页中是非常常见的一个功能,其作用也就是将数据分割成多个页面来进行显示。使用场景:当取到的数据量达到一定的时候,就需要使用分页来进行数据分割。
客户端的问题:如果数据量太多,都显示在同一个页面的话,会因为页面太长严重影响到用品的体验,也不便于操作,也会出现加载太慢的问题。
服务端的问题:如果数据量太多,可能会造成内存溢出,而且一次请求携带的数据太多,对服务器的性能也是一个考验。
2 分页的分类及实现原理
分页的实现分为真分页和假分页两种,也就是物理分页和逻辑分页。
1、物理分页
实现原理:SELECT*FROM xxx [WHERE...] LIMIT #{param1), #{param2}
第一个参数是开始数据的索引位置
第二个参数是要查询多少条数据优点:不会造成内存溢出缺点:翻页的速度比较慢
2、逻辑分页(内存分页)
实现原理:一次性将所有的数据查询出来放在内存之中,每次需要查询的时候就直接从内存之中去取出相应索引区间的数据
优点:分页的速度比较快缺点:可能造成内存溢出
3 分页插件 PageHelper 的简介
我们用传统的方式进行分页,需要自己去封装数据,而使用插件之后,无需你自己去封装以及关心 sql 分页等问题,使用很方便,前端取数据也很方便。Pagehelper 是中国的开源的 MyBatis 分页插件,通过该插件可以非常煎蛋的实现分页功能。