美文网首页
MySQL8.0-自动配置缓冲池和redo日志

MySQL8.0-自动配置缓冲池和redo日志

作者: 月饮沙 | 来源:发表于2020-04-02 16:57 被阅读0次

当MySQL实例运行在数据库专用服务器时,MySQL可以使用所有系统资源,在这种情况下,可以使用innodb_dedicated_server选项自动配置InnoDB。
在MySQL实例和其他应用程序共用系统资源时,不建议使用该选项

启用innodb_dedicated_server后,InnoDB会自动配置以下选项

  • innodb_buffer_pool_size
  • innodb_log_file_size
  • innodb_log_files_in_group(MySQL8.0.14+)
  • innodb_flush_method
    如果在配置文件中指定以上选项,会优先使用指定的值并出现类似以下格式的警告,其他未指定的选项依然可以自动配置。
[Warning] [000000] InnoDB: Option innodb_dedicated_server is ignored for innodb_buffer_pool_size because innodb_buffer_pool_size=134217728 is specified explicitly.

每次启动数据库时,都会自动评估配置值并在必要的情况下更改自动配置值。

自动配置规则

innodb_buffer_pool_size

缓冲池大小根据内存大小进行自动配置

服务器内存 缓冲池大小
< 1GB 128MiB (默认值)
1GB - 4GB 服务器内存 * 0.5
> 4GB 服务器内存 * 0.75

innodb_log_file_size

MySQL8.0.14+

在MySQL8.0.14及以后版本,日志文件大小根据缓冲池大小进行自动配置

缓冲池大小 日志文件大小
< 8GB 512MiB
8GB - 128GB 1024MiB
> 128GB 2048MiB
MySQL8.0.14-

日志文件大小根据服务器内存进行自动配置

服务器内存 日志文件大小
< 1GB 48MiB (the default value)
<= 4GB 128MiB
<= 8GB 512MiB
<= 16GB 1024MiB
> 16GB 2048MiB

innodb_log_files_in_group

日志文件数量与自动配置的缓冲池大小相关

缓冲池大小 日志文件数量
< 8GB ROUND(buffer pool size)
8GB - 128GB ROUND(buffer pool size * 0.75)
>128GB 64

innodb_flush_method

当启用innodb_dedicated_server时,刷新方法设置为O_DIRECT_NO_FSYNC。如果O_DIRECT_NO_FSYNC不可用,使用innodb_flush_method的默认设置(fsync

相关文章

网友评论

      本文标题:MySQL8.0-自动配置缓冲池和redo日志

      本文链接:https://www.haomeiwen.com/subject/aogxphtx.html