MySQL 8.0 新特性:innodb_dedicated_server
一、前言
Innodb Dedicated Server 是 8.0 版本推出的一个参数,开启之后可以根据服务器的配置自适应 innodb 引擎中的一些重要影响性能的参数,默认是关闭的。
二、参数测试
使用 mysql_install 脚本快速部署一台 MySQL 8.0 实例:
然后我们测试一下这个参数,修改配置文件后重启数据库:
下面是未开启 innodb_dedicated_server 使用 mysql_install 脚本安装 MySQL 参数信息:
此时为们使用的系统配置是 2C4G 发现 MySQL 为我们自适应四个参数分别是:
innodb_buffer_pool_size:innodb 引擎中最大的缓冲池;
innodb_log_file_size:Redo 重做日志的使用空间;
innodb_flush_method:控制数据文件及重做日志打开及刷写的模式,可以参考 MySQL 官方文档;
innodb_log_files_in_group (MySQL 8.0.14 起):重做日志的组数;
三、详细介绍
innodb_buffer_pool_size 自适应策略:
物理内存 < 1 G:
128M (默认)
物理内存 1G~4G:
detected server memory
* 0.5物理内存 > 4G:
detected server memory
* 0.75
innodb_log_file_size 自适应策略:在 8.0.14 之前根据服务器物理内存设定,之后会根据 buffer pool 适应,我们重点介绍 8.0.14 之后的 GA 版,详细请参阅 MySQL 官方文档:
buffer pool < 8G:
512M
buffer pool 8G~128G:
1024M
buffer pool > 128G:
2048M
innodb_flush_method 自适应策略:
会被默认设置为 O_DIRECT_NO_FSYNC 模式,如果 O_DIRECT_NO_FSYNC 模式不可用则会使用默认值。
四、注意事项
该参数不支持在线修改,需要重启数据库;
如果配置中已经显式指定对应的参数,则会已配置文件为准,不会自适应,也就是说如果想自适应那几个参数,开启 innodb_dedicated_server 即可,不需要再设定;
单机多实例不建议使用;
只适用于 innodb 引擎,如果业务使用其它存储引擎则该参数也无意义;
对云厂商很优化,扩展配置后不需要考虑这些重要参数。
-- 文章参考 MySQL 官方文档