我正在测试一个具有相当大的 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/