WebMD
本页大纲

N加1查询(N+1 Query)

缩写:N+1

简述

先查列表 1 次,再对每行各查关联 1 次,共 1+N 次往返。ORM 懒加载中极常见,列表一大即雪崩。

为何出现

对象导航式访问隐藏了 SQL 次数。

使用场景

列表页变慢、ORM 性能问题、接口抓 SQL 日志。

实践与应用

• 用 join/预加载/批量 IN 一次取齐。
• 开发环境打印 SQL 次数。
• DTO 投影避免加载整图。

注意事项

// 反例:循环内逐条查子表 → 改为 join/批量

信号与度量

单请求 SQL 次数、数据库 QPS 异常升高。

关联术语

• ORM:高发场景
• 连接 / 批量查询:治理手段
• 慢查询:外在表现