Amazon RDS 上的 MariaDB 的缓存预热 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon RDS 上的 MariaDB 的缓存预热

InnoDB 高速缓存预热可为您的 MariaDB 实例提供性能收益,方式是在数据库实例关闭时保存缓冲池的当前状态,然后在数据库实例启动时从保存的信息重新加载缓冲池。此方法将不再需要缓冲池使用常规数据库进行“预热”,而是预加载具有已知常见查询的页的缓冲池。有关缓存预热的更多信息,请参阅 MariaDB 文档中的转储和还原缓冲池

默认情况下,在 MariaDB 10.3 和更高版本的数据库实例上启用缓存预热。要启用该功能,请将数据库实例的参数组中的 innodb_buffer_pool_dump_at_shutdowninnodb_buffer_pool_load_at_startup 参数设置为 1。更改参数组中的这些参数值将影响使用该参数组的所有 MariaDB 数据库实例。要为特定 MariaDB 数据库实例启用缓存预热,您可能需要为这些数据库实例创建新的参数组。有关参数组的信息,请参阅Amazon RDS 的参数组

缓存预热主要为使用标准存储的数据库实例提高性能。如果您使用 PIOPS 存储,则通常看不到显著的性能收益。

重要

如果您的 MariaDB 数据库实例未正常关闭 (例如,在故障转移期间),则缓冲池状态将不会保存到磁盘。在此情况下,MariaDB 将在重新启动数据库实例时加载任何可用的缓冲池文件。这不会造成任何损害,但还原后的缓冲池可能不会反映缓冲池在重新启动前的最新状态。要确保您拥有启动时可用于预热 缓存的缓冲池的最新状态,建议您定期“按需”转储缓冲池。您可以按需转储或加载缓冲池。

您可创建事件来定期自动转储缓冲池。例如,以下语句创建一个名为 periodic_buffer_pool_dump 的事件,该事件每小时转储一次缓冲池。

CREATE EVENT periodic_buffer_pool_dump ON SCHEDULE EVERY 1 HOUR DO CALL mysql.rds_innodb_buffer_pool_dump_now();

有关更多信息,请参阅 MariaDB 文档中的事件

按需转储和加载缓冲池

您可以使用以下存储过程按需保存和加载 缓存: