gpt4 book ai didi

ruby-on-rails - 什么时候使用 preload 或 eager_load 或 includes 更好?

转载 作者:行者123 更新时间:2023-12-05 02:39:04 26 4
gpt4 key购买 nike

<表类="s-表"><头>SQL 包含连接在内存中加载相关记录执行两个查询<正文>预加载否是是包括是(左外连接)是有时预加载(左外连接)是没有

我是从概念上知道的。

我想知道什么时候使用哪个 API。我搜索但没有找到确切答案。

最佳答案

includes 选择是使用preload 还是eager_load。如果您对 includes 做出的决定不满意,您必须使用 eager_loadpreload


来自 https://engineering.gusto.com/a-visual-guide-to-using-includes-in-rails/ :

:includes 什么时候使用:preload?

在大多数情况下 :includes 将默认使用方法 :preload 将触发 2 个查询:

  • 加载与领先模型相关的所有记录
  • 根据关联模型或主导模型上的外键加载与主导模型关联的记录

:includes 什么时候使用 :eager_load?

:includes 将默认使用 :preload 除非您在后续子句中引用正在加载的关联,例如 :where 或 :order。以这种方式构建查询时,您还需要显式引用预先加载的模型。

Employee.includes(:forms).where('forms.kind = "health"').references(:forms)

关于ruby-on-rails - 什么时候使用 preload 或 eager_load 或 includes 更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69242991/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com