答案:LIMIT是mysql分页核心,配合OFFSET实现分页,建议结合ORDER BY和索引优化性能,避免深分页问题。

在 MySQL 中,LIMIT 是实现分页查询的核心语法。它用于限制查询结果返回的行数,通常与 OFFSET 配合使用来实现分页功能。
基本语法
MySQL 中 LIMIT 分页的基本语法如下:
select * FROM table_name LIMIT offset, row_count;
或者等价写法:
SELECT * FROM table_name LIMIT row_count OFFSET offset;
- row_count:表示要返回的记录条数(每页大小)
- offset:表示跳过的记录数(从第几条开始)
实际分页示例
假设每页显示 10 条数据:
- 查询第 1 页:
SELECT * FROM users LIMIT 10 OFFSET 0;
或 LIMIT 0, 10 - 查询第 2 页:
SELECT * FROM users LIMIT 10 OFFSET 10;
或 LIMIT 10, 10 - 查询第 3 页:
SELECT * FROM users LIMIT 10 OFFSET 20;
或 LIMIT 20, 10
通用公式:第 n 页,每页 size 条,则 offset = (n – 1) * size
结合 ORDER BY 使用
为了保证分页结果顺序一致,建议始终配合 ORDER BY 使用:
SELECT * FROM users ORDER BY id LIMIT 10 OFFSET 20;
否则,由于数据存储顺序可能变化,不同页之间可能出现重复或遗漏。
性能优化建议
- 对排序字段建立索引(如 id、create_time),避免 filesort
- 深分页(如 LIMIT 10000, 10)效率较低,可考虑使用“游标分页”(基于上一页最后一条记录的值继续查)
- 例如用主键连续查询:
SELECT * FROM users WHERE id > last_id ORDER BY id LIMIT 10;
基本上就这些。LIMIT 分页简单直接,但要注意深分页性能问题,合理设计查询方式。不复杂但容易忽略细节。