我已经用 Ruby Benchmark 测试了 Rails 查询:
放 Benchmark.measure { @product_providers = SiteController.fetch_providers(@product_types.keys) }
这基本上是用于连接product_provider
表的查询product_type
,但查询的逻辑超出了问题的范围。
protected
def self.fetch_providers product_types
fetched_providers = {}
if product_types && product_types.kind_of?(Array)
product_types.each do |product_type|
fetched_providers.merge!( { product_type.underscore => product_type.constantize.joins(:provider) } )
end
end
fetched_providers
end
我的问题是:
为什么要在 Ruby Bencmark 中测试查询,我得到的结果是:
0.000000 0.000000 0.000000 ( 0.000796)
但是,当我在内部运行查询时,rails console
我会在 4-6 秒后得到结果:)