【问题标题】:Is there a way to improve my Ruby on Rails eager loading?有没有办法改进我的 Ruby on Rails 急切加载?
【发布时间】:2020-07-10 21:52:37
【问题描述】:

我正在处理我的 Rails 应用程序中的一个页面,该页面需要通过许多关联的表来显示信息。目前,这个页面大约需要 15 秒来加载大约 700 条记录。我正在尝试优化数据查询。目前,我的查询如下所示:

@students = Student.includes(:school, orders: { cart: { packages: [:options, :order_packages] } })
        .where('students.school_id = ?', params[:school_id])
        .where('students.teacher like ?', '%day%')
        .where('students.grade = ?', '12')
        .order(:last_name)

此查询需要通过 .includes 方法进行深度嵌套的关联。有没有更有效的方法来运行这个查询?

【问题讨论】:

    标签: ruby-on-rails eager-loading


    【解决方案1】:

    这看起来不像是急切加载问题。您只是查询students 表中的列。确保这些列具有正确的索引,并且您的查询正在使用这些索引。确保关联表的外键具有索引,并且这些外键也用于完成预加载。

    【讨论】:

      猜你喜欢
      • 2015-08-05
      • 2011-02-13
      • 1970-01-01
      • 1970-01-01
      • 2016-02-07
      • 1970-01-01
      • 2014-12-06
      • 2021-12-30
      • 1970-01-01
      相关资源
      最近更新 更多