23-Django-ORM的N+1问题-select_related与prefetch_related详解📖 文章简介: N+1 查询是 Django 项目中最隐蔽也最高频的性能杀手。表面看起来代码正常——获取 50 个用户然后显示每个用户的部门名称,但实际上数据库被查询了 51 次而不是 2 次。本文从头拆解 N+1 的成因——Django ORM 懒加载机制与关联对象访问的特性,然后逐一分析 select_related(JOIN 方式预加载外键)和 prefetch_related(额外查询预加载多对多)的差异和适用场景。配有 Django Debug Toolbar 实测和真实事故——一个报表接口因