Mysql
針對單元測試優化 MySQL 5.6
我們有一個用於單元測試的 MySQL 實例。我們的單元測試非常依賴於 MySQL。因此,我們將
/var/lib/mysql
dir 放在tmpfs
文件系統中,因為我們在單元測試中不需要持久數據。當我們這樣做時,我們的表現達到了頂峰。但是,在這種情況下,我想諮詢一下 MySQL 的最佳配置是什麼。
tmpfs
將 MySQL 放入(記憶體)中並執行諸如單元測試之類的不重要的東西是很常見的。問題是:執行 InnoDB 的最佳配置是什麼tmpfs
?這些是我們的配置
my.cnf
:max_connections=350 innodb_fast_shutdown=2 innodb_log_file_size=1048576 innodb_doublewrite=0 innodb_flush_method=O_DIRECT
我們所有的數據庫都在 InnoDB 中。我們不介意失去一些數據。
PS此時你可能會問,為什麼不用
MEMORY
引擎呢?那是因為MEMORY
只有表級鎖定,我們的部分單元測試是基於此的。編輯:我們已經完成了這個項目,我們基於這篇博文的配置:http: //jotschi.de/2014/02/03/high-performance-mysql-testdatabase/
對於
innodb_log_file_size
我認為是帶有大量寫入的批量載入的單元測試數據,看起來相當小。
innodb_buffer_pool_size
需要設置一個體面的值來說明活動測試的大小。因為崩潰安全不是問題,例如
innodb_doublewrite=0
innodb_flush_log_at_trx_commit=0
,將加快寫入事務。
max_connections
意味著您正在執行多執行緒客戶端,如果這些客戶端正在連接/斷開連接,則可能設置thread_cache_size
為通常使用的最大數量。A
SHOW GLOBAL STATUS
after a test run 可能會提示可以調整哪些其他方面。