如何实现分页查询功能

来源:这里教程网 时间:2026-02-28 20:09:45 作者:

分页查询的核心是只获取当前页面需要的数据,而不是一次性加载全部数据。这样可以提升系统性能、减少网络传输量,尤其在数据量大的场景下非常关键。实现分页主要依赖数据库的“限制返回条数”和“偏移量”功能。

1. 基础SQL分页语法(以MySQL为例)

大多数关系型数据库支持使用 LIMITOFFSET 实现分页:

SELECT * FROM table_name LIMIT page_size OFFSET offset;

其中:

page_size:每页显示多少条数据 offset:跳过前面多少条数据

例如,每页显示10条,查第3页:

SELECT * FROM users LIMIT 10 OFFSET 20;

因为前两页共20条数据被跳过。

2. 计算分页参数

前端通常传入当前页码 page 和每页大小 size,后端计算 offset:

offset = (page - 1) * size

比如 page=3, size=10,则 offset=20,与上面示例一致。

3. 返回分页结果结构

除了数据列表,还应返回总记录数,便于前端显示总页数或翻页控件:

{ "data": [...], "total": 150, "page": 3, "size": 10, "totalPages": 15 }

totalPages 可通过 total / size 向上取整得到。

4. 优化建议

当数据量大时,OFFSET 越大,查询越慢,因为数据库仍需扫描前面所有行。可考虑以下优化方式:

使用主键或索引字段进行“游标分页”(Cursor-based Pagination),如:WHERE id > last_id LIMIT size 对排序字段建立索引,避免 filesort 若允许,提供“上一页/下一页”而非跳转任意页,降低数据库压力

基本上就这些。分页不复杂但容易忽略性能问题,合理设计能显著提升响应速度。

相关推荐