我正在我的机器上运行一些单元和集成测试。在这种测试环境中,数据完整性并不重要。我不在乎数据是否被写入磁盘,我只希望我的测试速度快。
我可以启用任何选项以使 InnoDB 完全在 RAM 中运行吗?
一些选项:
除了将表类型更改为 MEMORY 而不是 InnoDB 之外,您还可以使用该innodb_flush_log_at_trx_commit
设置显着加快插入和更新速度。
设置为 2 而不是 1 可以轻松地使插入和更新速度提高 10 倍或更多。实际上,这会导致 InnoDB 每秒将数据 fsync() 到事务日志,而不是在每次事务提交时。
另一种选择是只使用较大的事务(特别是如果您正在插入大量数据并当前使用自动提交)。