如何进行预加载?

How to make eager loading?

如何在 1 个主键 table 和 2 个外键 table 之间进行预先加载?

说我有 Table A(小学)

Table一个 标识符整数 姓名

Table乙 标识符整数 援助情报

TableC 标识符整数 援助情报

评论太长了。

我认为您需要做的就是对所有表编写一个单个查询:

select . ..
from a join
     b
     on b.aid = a.id join
     c
     on c.aid = a.id;

然后数据库引擎管理存储,并可以智能地将页面加载到页面缓存中,并将它们缓存起来以备将来查询。

如果您尝试将其拆分为多个查询,那么我看不到 a 上的一个查询会导致加载 b 的相应行的方式。另一方面,桌子有多大?如果它们不大,这些表将完全加载到页面缓存中,您不必担心个别行。

一个问题是初始查询将在冷缓存中,并且比后续查询花费更长的时间。