如何在mysql中进行分页查询_mysql分页查询基础方法

P粉602998670
发布: 2025-12-20 03:35:33
原创
297人浏览过
MySQL分页查询最常用方法是LIMIT和OFFSET,语法为SELECT * FROM table_name LIMIT offset, row_count或LIMIT row_count OFFSET offset;需校验页码与每页数量,避免深分页性能问题,务必配合ORDER BY使用以保证结果稳定。

如何在mysql中进行分页查询_mysql分页查询基础方法

MySQL 分页查询最常用、最基础的方法是使用 LIMITOFFSET 子句,适用于大多数中小型数据量场景。

Text-To-Pokemon口袋妖怪
Text-To-Pokemon口袋妖怪

输入文本生成自己的Pokemon,还有各种选项来定制自己的口袋妖怪

Text-To-Pokemon口袋妖怪 1494
查看详情 Text-To-Pokemon口袋妖怪

基本语法: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

以上就是如何在mysql中进行分页查询_mysql分页查询基础方法的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号