【问题标题】:Fast Search within Ruby on Rails ArrayRuby on Rails 数组中的快速搜索
【发布时间】:2016-01-21 13:46:00
【问题描述】:

我有一个庞大的哈希数组。每个 Hash 都是关于一家公司的详细信息。当我在这个哈希数组中搜索时。它非常慢。我怎样才能提高它的性能?

我正在使用带有条件的 Select 方法来根据状态和部门等获取不同的公司

companies.count { |company| company.sectors.include?('educational') && company.status == 'completed' }

使用 ruby​​ on rails 从大量数组哈希中搜索的最佳方法是什么?

【问题讨论】:

  • 最快的方法是在数据库中搜索,使用 SQL 查询
  • 如何将数据导入数据库并进行查询?如果您的数据集不经常更改,那可能是个好主意
  • 你的意思是“巨大的哈希数组”,我相信。另外,您提供的信息太少。您有多少搜索条件?您是否总是使用同一组搜索条件?为什么你当前的数据结构是这样的?
  • @Nermin:绝对不是。至少在一般情况下不会。也许最方便,但最快 - 不。
  • 这可能不是最有用的评论,但是在搜索之前您可以进行一些排序吗?

标签: ruby-on-rails ruby ruby-on-rails-4 rubygems dynamic-arrays


【解决方案1】:

使用 SQL:

Company.where('selector like ? AND status = ?', '%educational%', 'completed').count

但你可以先使用 find companies

@companies = Company.includes(:my_associations).where(...)

比我的样本.where('selector like ? AND......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 2016-05-24
    • 2015-04-20
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多