ruby-on-rails - 测试用例中的随机查询执行时间

标签 ruby-on-rails unit-testing mysql tdd

我正在测试一个具有相当大的 sql 查询的方法。我有大约 15 个连接,一个子查询有 2 个连接,所以很复杂。但每次运行所花费的时间不同。有的时候是4秒,有的时候是80秒,甚至200秒。是标准的单元测试,用FactoryGirl准备数据,数据总是一样的。

是否有任何 mysql 分析器、mysql 选项或其他工具可以帮我找出为什么运行时间差异如此之大?怎么算出来的?

最佳答案

MySQL 很有可能会缓存某些子查询和/或连接的结果,这很容易解释您在响应时间中看到的变化。

对于探查器,快速执行 google for "mysql profiler"想出了this link ,以及a previous question here on SO问了同样的问题。

关于ruby-on-rails - 测试用例中的随机查询执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3821981/

相关文章:

ruby-on-rails - 为什么 foreman gem 会忽略 PORT 环境变量?

ruby-on-rails - Controller 测试错误消息 : "ActionView::Template::Error: The asset "MyString"is not present in the asset pipeline"

c# - 如何在模拟对象上调用预期方法后立即通过单元测试?

php - MySQL 插入

mysql - 高效分类Mysql结构

css - 要导入的文件未找到或不可读 : bootstrap (Bootstrap, Rails、Sass 错误)

ruby-on-rails - 如何使用 Rails Form 和 Role Model Gem 添加多个角色

mysql - 如何将数据从生产数据库迁移到开发数据库 (Rails 4)?

java - Spring REST API 服务单元测试(更新(PUT 方法))

php - 如何使用模型处理 Laravel 中的数据库分区