分页查询通过LIMIT和OFFSET实现,核心是按需加载数据以提升性能。计算offset=(page-1)*size,结合page_size获取指定页数据,同时返回total、totalPages等元信息。大数据量下建议用游标分页、索引优化及限制跳转页数来提升效率。

分页查询的核心是只获取当前页面需要的数据,而不是一次性加载全部数据。这样可以提升系统性能、减少网络传输量,尤其在数据量大的场景下非常关键。实现分页主要依赖数据库的“限制返回条数”和“偏移量”功能。
1. 基础SQL分页语法(以MySQL为例)
大多数关系型数据库支持使用 LIMIT 和 OFFSET 实现分页:
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:
聚彩手机商城系统,是一款专业于手机销售的独立手机网店系统,他拥有众多的手机参数选项,以及傻瓜式的设置选项,让您可以在5分钟内建立起专业而强大的手机销售网站。他拥有多套模版可以实时切换,前台拥有新闻中心、手机中心、配件中心、软件下载、手机报价、发货查询、保修查询、分店查询、产品的对比功能,代理与加盟的申请等功能,他拥有完善的会员中心,会员等级设置等,集成在线支付接口,超强SEO,可以设置所有页面的t
- 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
- 若允许,提供“上一页/下一页”而非跳转任意页,降低数据库压力
基本上就这些。分页不复杂但容易忽略性能问题,合理设计能显著提升响应速度。









