DRF的分页讲解-入门篇 三个基础分页类介绍

虽然这里有三个分页类,但是永远记住大前提,根据需求选择。其他用到再看再了解

一、三个基础分页类对比

第一个分页类是最常用最常用的

第二个分页类常用于移动端,比如进行触底刷新。

第三个分页类,记住是用于解决海量数据 分页而设计的,这里涉及到数据库的游标分页知识**(高级)初学者可不用理会。**

下表中是三个分页类的对比说明,重点放在前两个!!! 本系列会以PageNumberPagination类进行讲解

对比维度 PageNumberPagination (页码分页) LimitOffsetPagination (偏移量分页) CursorPagination (游标分页)
核心机制 基于传统"页码"进行查询计算 基于 SQL 的 LIMITOFFSET 语法 基于加密的游标(Cursor)字符串定位数据
URL 参数示例 ?page=2 ?limit=10&offset=20 ?cursor=cD0yMDE4LTEwLTAx...
深分页性能 较差。随着页码增大,数据库需扫描并丢弃大量前序记录 较差。与页码分页类似,大偏移量会导致严重的全表扫描或索引失效 极佳。无论翻到第几页,都只依赖主键/索引进行等值查询,时间复杂度为 O(1)
排序要求 支持任意字段排序 支持任意字段排序 强制要求必须有一个唯一且不可变的排序字段(通常是创建时间或主键 ID)
跳页能力 支持。前端可随意输入或点击跳转到任意指定页 支持。前端可通过计算 offset 自由跳转 不支持。只能线性地获取"上一页"或"下一页"(类似无限滚动加载)
数据一致性 较低。在翻页过程中如果有新数据插入或删除,可能导致数据重复或遗漏 较低。同样存在新增/删除数据导致的数据错位问题 极高。基于绝对位置定位,不受中途数据增删的影响,保证数据不重不漏
安全性 一般。暴露了真实的页码信息 一般。暴露了具体的偏移量和总数 较高。游标是加密生成的,隐藏了底层数据的真实物理位置和总数
适用业务场景 传统的后台管理系统、PC端网页列表(需要展示总页数和跳页控件) 移动端接口、小程序、需要精确截取特定范围数据的场景 社交媒体信息流(Feed流)、海量数据报表、无限下拉加载页面

二、总结

本文只是对基础分页类进行一个引入,读者重点放在前两个,光看不写是掌握不了的,接下来在有以上基础后,继续看下一篇分页类的使用https://mp.csdn.net/mp_blog/creation/editor/162010237

相关推荐
jay神1 小时前
深度学习的优化器应该怎么选?
人工智能·python·深度学习·毕业设计·课程设计
XLYcmy9 小时前
京东 算法实习一面 下+手撕
c++·python·llm·概率论·数据处理·训练·codebert
虎头金猫9 小时前
如何在群晖NAS上通过Docker部署CloudSaver?群晖部署CloudSaver教程|聚合资源搜索并实现远程访问
运维·服务器·网络·python·docker·容器·pandas
从零开始学习人工智能9 小时前
WSL2部署CUDA12+cuDNN9踩坑实录:ONNX Runtime GPU推理环境搭建全流程
python
m0_380743879 小时前
从零调用 Claude 教程
开发语言·python·node.js
min(a,b)10 小时前
学习第17天:Agent Memory 与 MCP 协议
python·学习
CodeBlog-star11 小时前
LLM安全实战:提示词注入与越狱攻击防御指南
python·agent·提示词攻击·越狱攻击
小柯南敲键盘11 小时前
电商图片翻译工具推荐,批量处理主图视频字幕,免费试用
大数据·人工智能·python·音视频
比高创意品牌策划设计12 小时前
零售卖场设计软件用CAD还是SketchUp还是酷家乐
python
迷迭香yy13 小时前
行业板块轮动因子实战从板块资金到因子建模的本地化Python全流程
数据库·人工智能·python