2012-07-05 78 views
1

我正在我的机器上运行一些单元和集成测试。在这个测试环境中,数据完整性无关紧要。我不在乎数据是否写入光盘,我只想让我的测试速度很快。InnoDB在测试环境中的性能

有没有我能启用的选项,InnoDB完全在RAM中运行?

回答

1

除了将表类型内存而不是InnoDB的,你可以通过使用innodb_flush_log_at_trx_commit设置使插入和更新显著更快。

设置为2而不是1可以轻松地使插入和更新速度提高10倍或更多。实际上,这导致InnoDB每秒都会将数据fsync()数据传输到事务日志,而不是每次事务提交。

另一种选择是只使用更大的事务(尤其是如果您插入大量数据并使用自动提交)。

1

一些选项:

  • 移动在内存文件系统的数据(例如移动在Linux中的数据,日志等中的/ dev/shm的)
  • 制作的fsync()无操作与libeatmydata