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

Amazon RDS 上的 MySQL 功能支持

RDS for MySQL 支持 MySQL 的大部分特性和功能。有些特征可能仅提供有限的支持或受限制的权限。

您可以在数据库的新增功能?页面上筛选新的 Amazon RDS 特征。对于 Products (产品),请选择 Amazon RDS。然后使用 MySQL 2022 之类的关键词进行搜索。

注意

以下列表并不详尽。

支持的 RDS for MySQL 存储引擎

虽然 MySQL 支持功能不同的多种存储引擎,但并非所有引擎都为恢复和数据持久性进行了优化。Amazon RDS 完全支持 MySQL 数据库实例的 InnoDB 存储引擎。Amazon RDS 的时间点恢复和快照恢复功能要求使用恢复存储引擎,且仅支持 InnoDB 存储引擎。有关更多信息,请参阅MySQL memcached 支持

Amazon RDS for MySQL 当前不支持联合存储引擎。

对于用户创建的架构,MyISAM 存储引擎不支持可靠的恢复,并且在恢复后重新启动 MySQL 时可能会导致数据丢失或损坏,使时间点还原或快照还原无法发挥预期的作用。不过,如果您仍选择配合使用 MyISAM 和 Amazon RDS,在某些条件下,快照可能也会有所帮助。

注意

mysql 架构中的系统表可以位于 MyISAM 存储中。

如果要将现有的 MyISAM 表转换为 InnoDB 表,您可以使用 ALTER TABLE 命令(例如,alter table TABLE_NAME engine=innodb;)。请注意,MyISAM 和 InnoDB 各有优点和缺点,所以在执行前请充分评估转换可能对您的应用程序造成的影响。

Amazon RDS 不再支持 MySQL 5.1、5.5 和 5.6。但您可以还原现有的 MySQL 5.1、5.5 和 5.6 快照。在还原 MySQL 5.1、5.5 和 5.6 快照时,数据库实例将自动升级到 MySQL 5.7。

在 Amazon RDS 上通过 MySQL 使用 memcached 和其他选项

大多数 Amazon RDS 数据库引擎均支持一些选项组,通过这些选项组,可选择其他功能用于数据库实例。RDS for MySQL 数据库实例支持 memcached 选项,它是一个简单的基于键的缓存。有关 memcached 和其他选项的更多信息,请参阅适用于 MySQL 数据库实例的选项。有关使用选项组的详细信息,请参阅使用选项组

Amazon RDS 上 MySQL 的 InnoDB 缓存预热

InnoDB 缓存预热可为您的 MySQL DB 实例提供性能收益,方式是在数据库实例关闭时保存缓冲池的当前状态,然后在数据库实例启动时从保存的信息重新加载缓冲池。这将不再需要缓冲池使用常规数据库进行“预热”,而是预加载具有已知常见查询的页的缓冲池。存储已保存缓冲池信息的文件仅存储缓冲池内的页的元数据,而不是存储页本身。因此,此文件需要的存储空间不多。此文件的大小约为缓存大小的 0.2%。例如,对于 64 GiB 的缓存,缓存预热文件大小为 128 MiB。有关 InnoDB 缓存预热的更多信息,请参阅 MySQL 文档中的保存和还原缓冲池状态

RDS for MySQL 数据库实例支持 InnoDB 缓存预热。要启用 InnoDB 缓存预热,请将数据库实例的参数组中的 innodb_buffer_pool_dump_at_shutdowninnodb_buffer_pool_load_at_startup 参数设置为 1。更改参数组中的这些参数值将影响使用该参数组的所有 MySQL 数据库实例。要为特定 MySQL 数据库实例启用 InnoDB 缓存预热,您可能需要为这些实例创建新的参数组。有关参数组的信息,请参阅使用参数组

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

重要

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

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

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

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

按需转储和加载缓冲池

您可“按需”保存和加载 InnoDB 缓存。

Amazon RDS 不支持的 MySQL 功能

Amazon RDS 当前不支持以下 MySQL 功能:

  • 身份验证插件

  • 将错误记录到系统日志

  • InnoDB 表空间加密

  • 密码强度插件

  • 永久保存的系统变量

  • Rewriter 查询重写插件

  • 半同步复制

  • 可传输的表空间

  • X 插件

注意

所有 RDS for MySQL 5.7 版本和 RDS for MySQL 8.0.26 及更高的 8.0.x 版本都支持全局事务 ID。

为了提供托管服务体验,Amazon RDS 未提供数据库实例的 Shell 访问权限。并且它还限制了对需要高级权限的某些系统程序和表的访问。Amazon RDS 支持使用任何标准 SQL 客户端应用程序访问数据库实例上的数据库。Amazon RDS 不允许使用 Telnet、安全外壳(SSH)或 Windows 远程桌面连接直接从主机访问数据库实例。创建数据库实例时,您将获得该实例上所有数据库的 db_owner 角色,并且您将具有除用于备份的权限以外的所有数据库级别的权限。Amazon RDS 会为您管理备份。