一 概述
前言:
数据的分页,不管你是sql中手写还是通过mybatis都将遵循的逻辑就是物理分页或者逻辑分页。
物理分页:物理分页依赖数据库,比如MySQL数据库提供的"limit"关键字,只需编写带有"limit"关键字的sql语句,数据库返回的就是分页结果。
逻辑分页:依赖的是程序员编写的代码。数据库返回的不是分页结果,而是全部数据,然后再由程序员通过代码获取分页数据,常用的操作是一次性从数据库中查询出全部数据并存储到List集合中,因为List集合有序,再根据索引获取指定范围的数据
二 物理分页/逻辑分页 对比
数据库负担
逻辑分页一次性将数据读取到内存,占用了较大的内容空间。
物理分页每次只读取一部分数据,占用内存空间较小。
服务器负担
逻辑分页一次性将数据读取到内存,占用了较大的内容空间。
物理分页每次只读取一部分数据,占用内存空间较小。
实时性
逻辑分页一次性将数据读取到内存,数据发生改变,数据库的最新状态不能实时反映到操作中,实时性差。
物理分页每次需要数据时都访问数据库,能够获取数据库的最新状态,实时性强。
应用场景
逻辑分页主要用于数据量不大、数据稳定的场合。
物理分页主要用于数据量较大、更新频繁的场合。