MySQL 8.0 首個自適應參數橫空出世

|什麼是自適應參數服務器

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的錯誤日誌中會打印以下內容:

e1520e3d32486d53439d4a68507766a839b90c30

'variable name' 指的就是 innodb_buffer_pool_size/innodb_log_file_size/inndob_flush_method參數。

相關文章
相關標籤/搜索