Eager loading(预先加载 / 急切加载):在程序(常见于 ORM 数据库访问)中,在获取主对象时就同时把相关联的数据一并查询并载入内存,以减少后续多次查询(例如避免 “N+1 查询”)带来的性能问题。也可更广义地指“提前把可能会用到的数据/资源先加载好”。
/ˈiːɡər ˈloʊdɪŋ/
I used eager loading to fetch the user and their orders in one query.
我使用预先加载,在一次查询中取出用户及其订单。
In large applications, eager loading can prevent the N+1 query problem by retrieving related records upfront, but it may increase memory use if you load too much.
在大型应用中,预先加载可以通过提前取回关联记录来避免 N+1 查询问题,但如果一次加载过多数据,也可能增加内存占用。
eager 原义是“急切的、迫切的”,在这里引申为“不等待需要时才加载,而是提前就加载”;loading 指“加载”。该术语在数据库与 ORM 语境中流行,用来与 lazy loading(延迟加载) 相对。
select_related、prefetch_related 等优化手段时经常出现 eager loading 的概念。