数据访问
规则 03 是底线:禁止 N+1,禁止在热点路径上使用 SELECT *,查询必须由索引支持,大列表必须分页。本技能展示当 ORM 或循环隐藏了数据库往返次数时,该规则如何被违反。
在从集合中加载关联、将映射标记为急切加载、或将一对多关系联入分页列表之前,请先阅读 references/bad-vs-good.md。
完成标准
- N 个父记录的列表不会对同一关联发起 N 次查询。
- 查询日志或追踪显示固定数量的语句(1 或 2 条,或 1 + N/批处理),而不是每行一条。
- 父记录的分页返回您请求的父记录数量,而不是被 join 撑大的行数。