首页 >> 基础教程
MySQL 第 3-10 条记录怎么查?
在 MySQL 中查询第 3 到第 10 条记录(共 8 条记录)需要使用 LIMIT
和 OFFSET
子句,并配合 ORDER BY
确保顺序稳定。以下是具体方法和示例:
SELECT * FROM your_table ORDER BY sort_column LIMIT 8 OFFSET 2; -- 从第3条开始(跳过前2条),取8条记录, 必须指定排序字段(如主键或时间戳)
OFFSET 2
表示跳过前 2 条记录(第1-2条)
结果集从第 3 条开始
LIMIT 8
表示获取 8 条记录(即第 3 到第 10 条)
ORDER BY
必须存在未指定排序时,MySQL 返回顺序不确定,(自信使用默认排序,使用索引时候掉坑里去了好几次)
推荐使用主键、时间戳等唯一字段排序
性能问题
OFFSET
值较大时(如 OFFSET 100000
),MySQL 仍需扫描跳过行,这个可能消耗大量时间。解决方案:
-- 优化:基于上一页最后一条记录的ID SELECT * FROM usersWHERE user_id < 上一页最后ID ORDER BY user_id DESCLIMIT 8;
结果一致性
若在分页过程中有数据插入/删除,可能导致记录重复或遗漏。解决方案:
使用事务保证快照一致性
改用游标分页(如基于有序字段的
WHERE
条件)
最新文章
mysql分页问题2025-08-04
千万数据先insert和先建索引哪个快2025-08-04
MySQL 中大小表关联查询如何优化2025-08-04
sql技巧-每个班年龄排前两名的人2025-08-03
MySQL 导致 cpu 飙升的话,要怎么处理呢?2025-07-29
MySQL 中为千万级大表添加字段2025-07-29
mysql中百万级别以上的数据如何删除2025-07-29
分库分表带来的问题2025-07-29
mysql中常用的分库分表中间件有哪些2025-07-29
mysql不停机扩容2025-07-29