當啟用 innodb_dedicated_server
時,InnoDB
會自動配置下列變數
-
注意
innodb_log_file_size
和innodb_log_files_in_group
已過時,並由innodb_redo_log_capacity
取代。
只有在 MySQL 執行個體位於可使用所有可用系統資源的專用伺服器上時,才考慮啟用 innodb_dedicated_server
。例如,如果您在僅執行 MySQL 的 Docker 容器或專用 VM 中執行 MySQL 伺服器,請考慮啟用 innodb_dedicated_server
。如果 MySQL 執行個體與其他應用程式共用系統資源,則不建議啟用 innodb_dedicated_server
。
以下資訊說明如何自動配置每個變數。
緩衝池大小會根據伺服器上偵測到的記憶體量進行配置。
表格 17.8 自動配置的緩衝池大小
偵測到的伺服器記憶體 緩衝池大小 小於 1GB 128MB(預設值) 1GB 到 4GB 偵測到的伺服器記憶體
* 0.5大於 4GB 偵測到的伺服器記憶體
* 0.75重做日誌容量會根據伺服器上可用的邏輯處理器數量進行配置。公式為(可用邏輯處理器數量 / 2)GB,最大動態預設值為 16 GB。
innodb_log_file_size
(已過時)日誌檔案大小會根據自動配置的緩衝池大小進行配置。
innodb_log_files_in_group
(已過時)日誌檔案數量會根據自動配置的緩衝池大小進行配置。
表格 17.10 自動配置的日誌檔案數量
緩衝池大小 日誌檔案數量 小於 8GB round( buffer pool size
)8GB 到 128GB round( buffer pool size
* 0.75)大於 128GB 64
注意如果捨入的緩衝池大小值小於 2GB,則會強制執行
innodb_log_files_in_group
最小值 2。
如果自動配置的選項在選項檔案或其他位置中明確配置,則會使用明確指定的設定,並將類似以下的啟動警告列印到 stderr
[警告] [000000] InnoDB:由於明確指定 innodb_buffer_pool_size=134217728,因此忽略 innodb_dedicated_server 選項。
明確配置一個選項不會阻止自動配置其他選項。
如果啟用 innodb_dedicated_server
且明確配置 innodb_buffer_pool_size
,則根據緩衝池大小配置的變數會使用根據伺服器上偵測到的記憶體量計算的緩衝池大小值,而不是明確定義的緩衝池大小值。
每次啟動 MySQL 伺服器時,都會評估並重新配置自動配置的設定(如有必要)。