如何使用limit限制查询条数_mysql分页基础

来源:这里教程网 时间:2026-02-28 20:35:51 作者:

在 MySQL 中,

LIMIT
是实现分页查询最直接、最常用的方式,它控制返回结果的行数。掌握它的基本用法,是写好分页 SQL 的第一步。

LIMIT 的两种基本写法

LIMIT
支持两种语法形式:

LIMIT n:只取前 n 条记录,等价于
LIMIT 0, n
LIMIT offset, n:跳过前 offset 条,再取 n 条(注意:offset 从 0 开始计数)

分页查询怎么写(第 page 页,每页 size 条)

假设当前要查第 3 页,每页显示 10 条数据:

起始位置(offset)= (page − 1) × size = (3 − 1) × 10 = 20 SQL 写成:
SELECT * FROM table_name LIMIT 20, 10

通用公式就是:

LIMIT (page-1)*size, size

为什么 offset 越大,查询越慢?

MySQL 执行

LIMIT 10000, 20
时,并不是直接跳到第 10001 行,而是先扫描并丢弃前 10000 行,再取后 20 行。数据量大、页码靠后时,性能明显下降。

优化思路:用“游标分页”(基于上一页最后一条记录的主键/时间戳继续查),避免大 offset 简单场景下,可加复合索引覆盖排序字段 + 查询条件,减少回表

配合 ORDER BY 使用才可靠

LIMIT
单独用在无序结果上,每次执行可能返回不同行(因存储引擎顺序不固定)。分页必须搭配
ORDER BY

正确:
SELECT * FROM user ORDER BY id LIMIT 20, 10
错误:
SELECT * FROM user LIMIT 20, 10
(结果不可预测)

如果排序字段有重复值,建议加上主键作为第二排序条件,确保顺序唯一,例如:

ORDER BY create_time DESC, id DESC

相关推荐