LIMIT是MySQL分页查询核心语法,支持LIMIT n和LIMIT offset,n两种形式;分页公式为LIMIT (page-1)*size, size;大offset导致性能下降,需配合ORDER BY使用并建议加主键避免重复排序。
在 MySQL 中,LIMIT 是实现分页查询最直接、最常用的方式,它控制返回结果的行数。掌握它的基本用法,是写好分页 SQL 的第一步。
LIMIT 支持两种语法形式:
LIMIT 0, n
假设当前要查第 3 页,每页显示 10 条数据:
SELECT * FROM table_name LIMIT 20, 10
通用公式就是:LIMIT (page-1)*size, size
MySQL 执行 LIMIT 10000, 20 时,并不是直接跳到第 10001 行,而是先扫描并丢弃前 10000 行,再取后 20 行。
数据量大、页码靠后时,性能明显下降。
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