首页 >> 基础教程

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条记录, 必须指定排序字段(如主键或时间戳)
  1. OFFSET 2

    • 表示跳过前 2 条记录(第1-2条)

    • 结果集从第 3 条开始

  2. LIMIT 8

    • 表示获取 8 条记录(即第 3 到第 10 条)

  3. ORDER BY 必须存在

    • 未指定排序时,MySQL 返回顺序不确定,(自信使用默认排序,使用索引时候掉坑里去了好几次)

    • 推荐使用主键、时间戳等唯一字段排序

性能问题

OFFSET 值较大时(如 OFFSET 100000),MySQL 仍需扫描跳过行,这个可能消耗大量时间。解决方案:

-- 优化:基于上一页最后一条记录的ID
SELECT * FROM usersWHERE user_id < 上一页最后ID 
ORDER BY user_id DESCLIMIT 8;

结果一致性
若在分页过程中有数据插入/删除,可能导致记录重复或遗漏。解决方案:

    • 使用事务保证快照一致性

    • 改用游标分页(如基于有序字段的 WHERE 条件)


发表评论

昵称:
联系方式:
评论内容:

所有评论

最新文章
10.5 反规范化:什么时候需要打破规则?2026-03-22
10.4 第三范式(3NF)2026-03-22
10.3 第二范式(2NF)2026-03-22
10.2 第一范式(1NF)2026-03-22
10.1 什么是数据库规范化?2026-03-22
9.5 实践:电商系统表关系设计2026-03-22
9.4 实际案例:博客系统表设计2026-03-22
9.3 多对多关系2026-03-22
9.2 一对多关系2026-03-22
9.1 一对一关系2026-03-18
关于我 备案号:蜀ICP备2023042032号-1