【问题标题】:Avoiding select * queries in meta_search在 meta_search 中避免 select * 查询
【发布时间】:2011-12-15 03:41:28
【问题描述】:

我在 rails 3 站点上使用 meta_search gem,我发现由 meta_search 获取数据库模式中的 BLOB 字段生成的 select * 查询存在一些性能问题。我不愿意迁移底层架构来解决这个问题。有没有办法在 meta_search 生成的搜索查询中包含/排除某些字段?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 meta-search


    【解决方案1】:

    Rails Active Record 中定义查询返回哪些字段的机制是.select(...),默认情况下是*。检查this SO answer 以了解一种定义默认范围的方法,该范围包括除了一个字段之外的所有内容。

    然而,对此的警告是,当您想要写入表时,您需要覆盖默认范围——一旦您使用.select,这些字段就是只读的。

    我使用 meta_search 的后继者 ransack,鉴于其作者 Ernie Miller 多么出色,很可能有一种内置方法可以做到这一点:-)

    当我第一次开始使用 Blob 时,它们似乎是个好主意……但是,呃,没那么多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      • 2020-03-16
      • 1970-01-01
      • 1970-01-01
      • 2019-04-16
      • 1970-01-01
      相关资源
      最近更新 更多