如何在1个主键表和2个外键表之间进行预先加载?
说我有表A(小学)
表A. Id INT 名称
表B. Id INT aID INT
表C Id INT aID INT答案 0 :(得分:0)
评论太长了。
我认为您需要做的就是在所有表上编写单查询:
select . ..
from a join
b
on b.aid = a.id join
c
on c.aid = a.id;
然后,数据库引擎管理存储,并可以智能地将页面加载到页面缓存中,并将它们缓存以备将来查询。
如果您尝试将其拆分为多个查询,那么我就不会看到a
上的一个查询会导致加载b
的相应行的方式。另一方面,桌子有多大?如果它们不大,表格将完全加载到页面缓存中,您不必担心单个行。
一个问题是初始查询将在冷缓存上,并且比后续查询花费的时间更长。