Mysql

針對單元測試優化 MySQL 5.6

  • August 29, 2018

我們有一個用於單元測試的 MySQL 實例。我們的單元測試非常依賴於 MySQL。因此,我們將/var/lib/mysqldir 放在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 STATUSafter a test run 可能會提示可以調整哪些其他方面。

引用自:https://dba.stackexchange.com/questions/167883