用于更快地运行测试的MySQL配置

时间:2014-05-13 12:33:27

标签: mysql unit-testing

我希望通过配置MySQL来加快测试Web应用程序。

我使用PHP和MySQL创建Web应用程序。开发时,每次保存文件时都会运行测试。因此,更快的测试执行可以节省开发时间并使我感到舒适。

虽然有加速测试的方法,但它的数据库必须是其中之一。 作为一个测试环境,我所需要的只是更快的响应。我不需要处理多个连接的耐久性或效率。

在这种情况下,最佳配置是什么?

1 个答案:

答案 0 :(得分:5)

这取决于测试数据库设置。

如果数据库一直在运行,您将不得不调整缓冲区大小和io线程等设置。与this answer建议的一样,有些工具可以测试和生成服务器设置的建议。

在数据完整性不重要的单元测试中,您可以在内存表(ENGINE = MEMORY)中使用并禁用INNODB的双写(innodb_doublewrite = OFF)。这将降低数据完整性,但会提高性能。

每次运行测试时,我都使用library来设置数据库。 通过使用这些设置,数据库大约运行一秒钟:

  • innodb_fast_shutdown = 2(快速关闭)
  • innodb_log_file_size = 1048576(最小可能的日志 大小)
  • innodb_data_file_path中= ibdata1中:10M; ibdata2:10M:自动扩展 (最小可能的数据文件大小,以便更快启动)