美文网首页
《全栈工程师修炼指南》学习笔记 - 分页的那些事儿

《全栈工程师修炼指南》学习笔记 - 分页的那些事儿

作者: VioletJack | 来源:发表于2023-03-15 10:13 被阅读0次

物理分页指的是数据库分页,直接通过 SQL 语句查询指定数据集返回用户。更常见的还是物理分页。
逻辑分页指的是内存分页,将数据全部存在内存中,再截取分页所需数据集返回用户。

逻辑分页的前提要求

  • 数据量不大,可以放在内存中。
  • 一致性满足要求,或者使用专门的设计维护内存中的数据一致性。
  • 持久性方面,数据允许丢失

分页代码设计

  • 单独的分页工具类:彻底把 DAO 的查询逻辑分离出去,创建一个单独的分页工具类 Paginator。
  • 绑定查询结果的分页对象:将分页对象和查询数据的结果集绑定在一起,数据访问层直接返回这个携带了实际数据的分页对象。
  • 把 Page 对象和 DAO 的代码整合起来,放到同一个有状态的业务对象上去,这样这个对象及携带了业务数据,有携带了分页信息。

SQL 实现

select * from TABLE_NAME limit 3, 4;

重复数据的问题

分页查询中出现重复数据的原因:

  1. 排序不稳定,可能会出现排序索引值相等的情况。导致排序算法每次排序的结果不一致。可以通过和主键值一起排序的方式来避免。
  2. 数据本身变化,由于数据的变化导致分页查询出现数据重复。这种情况某些场景下是合理的。如果需要保证不重复可以通过维护排序版本、使用数据队列等方式来保证。

相关文章

网友评论

      本文标题:《全栈工程师修炼指南》学习笔记 - 分页的那些事儿

      本文链接:https://www.haomeiwen.com/subject/giohrdtx.html