MySQL 分页通过使用 LIMIT 和 OFFSET 子句实现,LIMIT 指定要返回的行数,OFFSET 指定要跳过的行数。分页过程包括确定页数、OFFSET 值和 LIMIT 值,然后使用 LIMIT 和 OFFSET 子句编写查询。例如,获取第 2 页(每页 10 行)就使用 SELECT * FROM table_name LIMIT 10 OFFSET 10; 查询,该查询返回第 11 至 20 行的记录。

MySQL 分页实现原理
分页是数据库系统中一项重要的功能,它允许用户将大型数据集划分为较小、更易于管理的页面。在 MySQL 中,分页通过使用 LIMIT 和 OFFSET 子句实现。
LIMIT 和 OFFSET
- LIMIT 指定要返回的行数。
- OFFSET 指定要跳过的行数(从开头的计数)。
语法:
SELECT * FROM table_name LIMIT number OFFSET offset_value;
分页过程
以下是如何使用 LIMIT 和 OFFSET 实现分页:
- 确定要显示的页数,例如第 2 页。
- 确定从第几行开始(
OFFSET)。对于第 2 页,OFFSET值为(页数 - 1) * 每页行数,即(2 - 1) * 10,即 10。 - 确定要显示的行数(
LIMIT)。对于第 2 页,LIMIT值为每页行数,即 10。 - 使用
LIMIT和OFFSET子句编写查询,例如:
SELECT * FROM table_name LIMIT 10 OFFSET 10;
案例
考虑一个有 50 行记录的表 my_table。要获取第 2 页(每页 10 行),可以使用以下查询:
SELECT * FROM my_table LIMIT 10 OFFSET 10;
这将返回第 11 至 20 行的记录,从而在第 2 页上显示数据。
优点
-
易于使用:
LIMIT和OFFSET子句使用简单,易于理解。 - 效率:当与索引一起使用时,分页可以高效地查找特定的数据块。
缺点
- 数据移动:在使用偏移量时,MySQL 可能需要移动数据块,这会影响性能。
-
不适合大偏量:当
OFFSET值非常大时,性能会大大降低。










