Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  Enabling Automatic Configuration for a Dedicated MySQL Server

17.8.12 专用 MySQL 服务器启用自动配置

innodb_dedicated_server启用时,InnoDB将自动配置以下变量:

只有在 MySQL 实例驻留在专用服务器上,可以使用所有可用的系统资源时,才考虑启用innodb_dedicated_server。例如,在 Docker 容器或专用 VM 中运行 MySQL Server 时,可以启用innodb_dedicated_server。启用innodb_dedicated_server不推荐在 MySQL 实例与其他应用程序共享系统资源时。

以下信息描述了每个变量如何自动配置。

  • innodb_buffer_pool_size

    缓冲池大小根据服务器检测到的内存大小进行配置。

    表17.8 自动配置缓冲池大小

    Detected Server Memory Buffer Pool Size
    小于1GB 128MB(默认值)
    1GB到4GB 服务器检测到的内存 * 0.5
    大于4GB 服务器检测到的内存 * 0.75

  • innodb_redo_log_capacity

    redo日志容量根据服务器可用逻辑处理器的数量进行配置。公式是(可用逻辑处理器数 / 2)GB,最大动态默认值为16 GB。

    Note

    在MySQL 8.4之前,这个值基于可用内存,而不是可用逻辑处理器。

  • innodb_log_file_size(已弃用)

    日志文件大小根据自动配置的缓冲池大小进行配置。

    表17.9 自动配置日志文件大小

    Buffer Pool Size Log File Size
    小于8GB 512MB
    8GB到128GB 1024MB
    大于128GB 2048MB

  • innodb_log_files_in_group(已弃用)

    日志文件数量根据自动配置的缓冲池大小进行配置。

    表17.10 自动配置日志文件数量

    Buffer Pool Size Number of Log Files
    小于8GB round(缓冲池大小)
    8GB到128GB round(buffer pool size * 0.75)
    大于128GB 64

    Note

    如果圆整的缓冲池大小值小于2GB,强制执行最小innodb_log_files_in_group值为2。

如果自动配置的选项在选项文件或其他地方被显式配置,那么将使用显式指定的设置,并将类似于以下内容的启动警告打印到stderr

[Warning] [000000] InnoDB: 选项innodb_dedicated_server被忽略,因为innodb_buffer_pool_size=134217728被显式指定。

显式配置一个选项不禁止自动配置其他选项。

如果innodb_dedicated_server启用,并且innodb_buffer_pool_size被显式配置,那么基于缓冲池大小的变量将使用服务器检测到的内存数量计算的缓冲池大小值,而不是显式定义的缓冲池大小值。

自动配置的设置每次 MySQL 服务器启动时都会被评估和重新配置,以确保正确的设置。