|什麼是自適應參數服務器
MySQL8.0推出一個號稱能夠自適應服務器的參數,保證在各類不一樣的服務器、虛擬機、容器下自動適配服務器資源,讓咱們一塊兒來看看到底它能作到什麼地步。3d
|自適應參數是如何設置和適應變化的日誌
能夠設置參數 innodb_dedicated_server=ON來讓MySQL自動探測服務器的內存資源,肯定innodb_buffer_pool_size, innodb_log_file_size 和 innodb_flush_method 三個參數的取值。具體取值策略以下。server
innodb_buffer_pool_size:blog
● <1G: 128M(innodb_dedicated_server=爲OFF時的默認取值)
● <=4G: 探測到的物理內存 * 0.5
● >4G: 探測到的物理內存 * 0.75內存
innodb_log_file_size:資源
● <1G: 48M(innodb_dedicated_server=爲OFF時的默認取值)
● <=4G: 128M
● <=8G: 512M
● <=16G: 1024M虛擬機
● >16G: 2Ginnodb
innodb_flush_method:容器
若是系統容許設置爲O_DIRECT_NO_FSYNC。若是系統不容許,則設置爲InnoDB默認的Flush method。
上述這些參數在MySQL每次啓動時自動探測服務器(包括虛擬機和容器的內存)配置並自動生效。
|自適應參數使用注意
● innodb_dedicated_server默認設置爲OFF,不會自適應調整3個參數值。該參數也不是動態參數,沒法動態調整,也就是說MySQL啓動後沒法修改這個參數
● innodb_dedicated_server=ON 設置之後它其實只探測了服務器內存,因此目前只能自適應調整內存相關的三個參數
● innodb_dedicated_server=ON的狀況下,若是還顯式設置了 innodb_buffer_pool_size / innodb_log_file_size / innodb_flush_method 參數,顯示設置的這些參數會優先生效,而且在MySQL的錯誤日誌中會打印以下內容:
'variable name' 指的就是 innodb_buffer_pool_size/innodb_log_file_size/inndob_flush_method參數。