我使用Ruby Benchmark测试了Rails查询:
puts 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秒后得到结果:)
答案 0 :(得分:1)
您可以使用迷你探查器来测试效果http://miniprofiler.com/ 和关于此主题的railscast http://railscasts.com/episodes/368-miniprofiler