首页 > 解决方案 > 如何计算通过 Mongoid 访问/查询数据库的次数?

问题描述

我在 Rails 项目中使用 Mongoid。为了提高大型查询的性能,我使用include 方法来预先加载关系。

我想知道是否有一种简单的方法来计算代码块执行的实际查询次数,以便我可以检查我是否includes真的按预期减少了数据库访问次数。就像是:

# It will perform a large query to gather data from companies and their relationships
count = Mongoid.count_queries do
  Company.to_csv
end

puts count # Number of DB access

我想使用此功能添加 Rspec 测试,以证明我的查询在更改后仍然有效(例如,从新关系添加数据时)。例如,在 python 的 Django 框架中,可以为此使用assertNumQueries方法。

标签: ruby-on-railsrubymongodbmongoid

解决方案


检查 r ubygems.org并没有产生任何似乎可以满足您需求的东西。您最好研究一下应用性能工具,例如New RelicScoutDataDog。您也许可以通过以下方式获得一些标准基准规范

https://github.com/piotrmurach/rspec-benchmark


推荐阅读