

# 在 MySQL 8.4 中配置缓冲池大小和重做日志容量
<a name="Appendix.MySQL.CommonDBATasks.Config.Size.8.4"></a>

在 MySQL 8.4 中，Amazon RDS 默认启用 `innodb_dedicated_server` 参数。使用 `innodb_dedicated_server` 参数，数据库引擎可计算 `innodb_buffer_pool_size` 和 `innodb_redo_log_capacity` 参数。有关如何计算这些参数的信息，请参阅 MySQL 文档中的 [Configuring InnoDB Buffer Pool Size](https://dev.mysql.com/doc/refman/8.4/en/innodb-buffer-pool-resize.html) 和 [Redo Log](https://dev.mysql.com/doc/refman/8.4/en/innodb-redo-log.html)。

启用 `innodb_dedicated_server` 后，将根据数据库实例类内存计算 `innodb_buffer_pool_size` 参数。下表显示了检测到的服务器内存和相应的缓冲池大小。


| 检测到的服务器内存 | 缓冲池大小 | 
| --- | --- | 
|  < 1 GB  |  默认值为 128 MB  | 
|  1 GB 到 4 GB  |  *检测到的服务器内存* \$1 0.5  | 
|  > 4 GB  |  *检测到的服务器内存* \$1 0.75  | 

`innodb_redo_log_capacity` 参数会随实例类自动扩展到（vCPU 数量 / 2）GB，最大可达 16 GB。较大的实例类具有更大的重做日志容量，这样可以提高写入密集型工作负载的性能和弹性。

从 MySQL 8.0 升级到 MySQL 8.4 之前，请务必增加存储空间，以适应升级完成后可能出现的重做日志大小的增加。有关更多信息，请参阅 [增加数据库实例存储容量](USER_PIOPS.ModifyingExisting.md)。

如果您不希望 `innodb_dedicated_server` 参数计算 `innodb_buffer_pool_size` 和 `innodb_redo_log_capacity` 参数的值，则可以通过在自定义参数组中为这些值设置特定值来覆盖这些值。或者，您可以禁用 `innodb_dedicated_server` 参数，并在自定义参数组中设置 `innodb_buffer_pool_size` 和 `innodb_redo_log_capacity` 参数的值。有关更多信息，请参阅 [原定设置和自定义参数组](parameter-groups-overview.md#parameter-groups-overview.custom)。

如果您通过将 `innodb_dedicated_server` 参数设置为 `0` 来禁用该参数，并且未为 `innodb_buffer_pool_size` 和 `innodb_redo_log_capacity` 参数设置值，则 Amazon RDS 会将后两个参数分别设置为 128 MB 和 100 MB。这些默认值会导致在较大的实例类上性能不佳。