# 如何减少应用中的 N+1 数据库查询？

Canonical URL: https://help.iagenify.com/zh/faqs/databases/n-1

[← 返回数据库常见问题](https://help.iagenify.com/zh/faqs/databases)

帮助中心 · 常见问题 数据库 1 分钟阅读
# 如何减少应用中的 N+1 数据库查询？
N+1 模式是指代码先读取一个列表，随后又为每个项目单独执行一次查询，导致查询数量随结果规模增长。即使单次查询很快，这也会增加延迟；应定位重复访问路径，并用有限次数的查询加载关联数据。
IaGenify
数据库

## 找出重复查询
使用查询日志、链路追踪或数据库指标，定位执行大量相似语句的请求。比较查询数量与返回记录数，并检查是哪种关系或字段触发了重复读取。
开发环境中的少量数据可能掩盖问题。应使用接近实际的列表规模复现，并检查序列化、模板或辅助函数是否隐式访问关联对象。
## 有计划地加载关联数据
根据数据模型和数据库，可以使用联表查询、按键批量查询或 ORM 的预加载功能。既要避免逐行查询，也要避免返回大量重复数据的超大结果集。
比较修改前后的查询总数、返回行数、响应大小和延迟。为典型列表规模添加回归检查，同时在调整关联数据加载方式时保留分页和授权筛选。 [← 返回数据库常见问题](https://help.iagenify.com/zh/faqs/databases)
