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参数。

相关文章
相关标签/搜索