最小的 InnoDB 配置

這是使用 InnoDB 表的 MySQL 伺服器的最低設定。使用 InnoDB,不需要查詢快取。當表或資料庫被切換時回收磁碟空間。如果你正在使用 SSD,則重新整理是一種冗餘操作(SDD 不是順序的)。

default_storage_engine = InnoDB
query_cache_type = 0
innodb_file_per_table = 1
innodb_flush_neighbors = 0

併發

通過將 innodb_thread_concurrency 設定為 infinity(0),確保我們可以建立超過預設的 4 個執行緒; 這讓 InnoDB 根據最佳執行情況做出決定。

innodb_thread_concurrency = 0
innodb_read_io_threads = 64
innodb_write_io_threads = 64

硬碟利用率

設定 MySQL 的 IOPS 容量(正常負載)和 capacity_max(絕對最大值)。預設值 200 適用於 HDD,但是現在,如果 SSD 具有數千 IOPS,你可能需要調整此數量。你可以執行許多測試來確定 IOPS。如果你執行的是專用 MySQL 伺服器上述值應接近該限制。如果你在同一臺計算機上執行任何其他服務,則應根據需要進行分配。

innodb_io_capacity = 2500
innodb_io_capacity_max = 3000

RAM 利用率

設定 MySQL 可用的 RAM。雖然經驗法則是 70-80%,但這實際上取決於你的例項是否專用於 MySQL,以及可用的 RAM 數量。如果你有很多可用的東西,不要浪費 RAM(即資源)。

innodb_buffer_pool_size = 10G