如何在mysql中进行分页查询_mysql分页查询基础方法
MySQL分页查询最常用方法是LIMIT和OFFSET,语法为SELECT * FROM table_name LIMIT offset, row_count或LIMIT row_count OFFSET offset;需校验页码与每页数量,避免深分页性能问题,务必配合ORDER BY使用以保证结果稳定。
MySQL 分页查询最常用、最基础的方法是使用 LIMIT 和 OFFSET 子句,适用于大多数中小型数据量场景。
基本语法:LIMIT + OFFSET
标准写法为:
SELECT * FROM table_name LIMIT offset, row_count;
或等价写法:
SELECT * FROM table_name LIMIT row_count OFFSET offset;
其中:
• offset 表示跳过的记录数(从 0 开始)
• row_count 表示要返回的记录条数
例如:查第 2 页、每页 10 条,就是跳过前 10 条,取接下来的 10 条:
SELECT * FROM users LIMIT 10, 10; 或 SELECT * FROM users LIMIT 10 OFFSET 10;
计算 offset 的常见方式
前端传入页码 page(从 1 开始)和每页数量 size,后端需转换为 offset:
• offset = (page − 1) × size
• 比如 page=3、size=20 → offset = 40 → LIMIT 40, 20
注意:
• 页码必须校验是否 ≥ 1,size 建议限制合理范围(如 1–100)
• 不建议直接用用户输入拼 SQL,应使用参数化查询防注入
性能优化提示:避免深分页
当 offset 很大(如几万、几十万)时,MySQL 仍需扫描并跳过前面所有行,性能急剧下降。
可考虑以下改进:
• 对排序字段(如主键 id)加索引,确保 ORDER
BY + LIMIT 能高效执行
• 使用“游标分页”(基于上一页最后一条的 id 继续查),例如:
SELECT * FROM users WHERE id > 12345 ORDER BY id LIMIT 20;
• 避免 SELECT *,只查必要字段减少 I/O
配合 ORDER BY 使用才可靠
LIMIT 本身不保证顺序,若未指定 ORDER BY,每次查询结果可能不同。
务必搭配确定性排序,例如:
SELECT id, name FROM users ORDER BY id ASC LIMIT 20 OFFSET 40;
如果按非唯一字段排序(如 create_time),建议加上主键作为第二排序条件,避免因时间重复导致分页错乱:
ORDER BY create_time DESC, id DESC
上一篇 : SQL时间序列统计怎么处理_详细步骤拆解实现完整应用场景【教学】
下一篇 : Java实现解数独的小程序
-
SEO外包最佳选择国内专业的白帽SEO机构,熟知搜索算法,各行业企业站优化策略!
SEO公司
-
可定制SEO优化套餐基于整站优化与品牌搜索展现,定制个性化营销推广方案!
SEO套餐
-
SEO入门教程多年积累SEO实战案例,从新手到专家,从入门到精通,海量的SEO学习资料!
SEO教程
-
SEO项目资源高质量SEO项目资源,稀缺性外链,优质文案代写,老域名提权,云主机相关配置折扣!
SEO资源
-
SEO快速建站快速搭建符合搜索引擎友好的企业网站,协助备案,域名选择,服务器配置等相关服务!
SEO建站
-
快速搜索引擎优化建议没有任何SEO机构,可以承诺搜索引擎排名的具体位置,如果有,那么请您多注意!专业的SEO机构,一般情况下只能确保目标关键词进入到首页或者前几页,如果您有相关问题,欢迎咨询!