如何进行预加载?
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
的相应行的方式。另一方面,桌子有多大?如果它们不大,这些表将完全加载到页面缓存中,您不必担心个别行。
一个问题是初始查询将在冷缓存中,并且比后续查询花费更长的时间。
如何在 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
的相应行的方式。另一方面,桌子有多大?如果它们不大,这些表将完全加载到页面缓存中,您不必担心个别行。
一个问题是初始查询将在冷缓存中,并且比后续查询花费更长的时间。