与 MySQL 8.0 兼容的 Aurora MySQL 版本 3 - Amazon Aurora

与 MySQL 8.0 兼容的 Aurora MySQL 版本 3

您可以使用 Aurora MySQL 版本 3 来获得最新的 MySQL 兼容功能、性能增强功能和错误修复。接下来,您可以了解与 MySQL 8.0 兼容的 Aurora MySQL 版本 3。您可以了解如何将集群和应用程序升级到 Aurora MySQL 版本 3。

一些 Aurora 功能(例如 Aurora Serverless v2)需要 Aurora MySQL 版本 3。

MySQL 8.0 社群版中的功能

Aurora MySQL 版本 3 的初始版本与 MySQL 8.0.23 社群版兼容。MySQL 8.0 引入了几项新功能,包括以下功能:

  • 原子数据定义语言(DDL)支持。有关更多信息,请参阅原子数据定义语言(DDL)支持

  • JSON 函数。有关使用信息,请参阅 MySQL 参考手册中的 JSON 函数

  • 窗口函数。有关使用信息,请参阅 MySQL 参考手册中的 Window 函数

  • 使用 WITH 子句的公用表表达式 (CTE)。有关使用信息,请参阅 MySQL 参考手册中的 WITH(公用表表达式)

  • ALTER TABLE 语句的优化 ADD COLUMNRENAME COLUMN 子句。这些优化被称为“即时 DDL”。Aurora MySQL 版本 3 与社群 MySQL 即时 DDL 功能兼容。未使用以前的 Aurora 快速 DDL 功能。有关即时 DDL 的使用信息,请参阅 即时 DDL(Aurora MySQL 版本 3)

  • 降序、功能性和不可见的索引。有关使用信息,请参阅 MySQL 参考手册中的不可见索引降序索引CREATE INDEX 语句

  • 通过 SQL 语句控制的基于角色的权限。有关更改权限模型的更多信息,请参阅 基于角色的权限模型

  • 带有 SELECT ... FOR SHARE 语句的 NOWAITSKIP LOCKED 子句。这些子句避免了等待其他事务释放行锁。有关使用信息,请参阅 MySQL 参考手册中的锁定读取

  • 改进二进制日志 (binlog) 复制。有关 Aurora MySQL 的详细信息,请参阅 二进制日志复制。特别是,您可以执行筛选的复制。有关筛选复制的使用信息,请参阅 MySQL 参考手册中的服务器如何评估复制筛选规则

  • 提示。一些 MySQL 8.0 兼容的提示已被向后移植到 Aurora MySQL 版本 2。有关将提示用于 Aurora MySQL 的信息,请参阅 Aurora MySQL 提示。有关社群 MySQL 8.0 中的完整提示列表,请参阅 MySQL 参考手册中的优化程序提示

有关添加到 MySQL 8.0 社群版的功能的完整列表,请参阅博客文章 MySQL 8.0 中的完整新功能列表

Aurora MySQL 版本 3 还包括对包容性语言的关键字的更改,从社群 MySQL 8.0.26 向后移植。有关更改的详细信息,请参阅 Aurora MySQL 版本 3 的包容性语言更改

Aurora MySQL 版本 3 是 Aurora MySQL Serverless v2 的先决条件

Aurora MySQL 版本 3 是 Aurora MySQL Serverless v2 集群中所有数据库实例的先决条件。Aurora MySQL Serverless v2 包括对数据库集群中的读取器实例的支持,并包括对 Aurora MySQL Serverless v1 不可用的其他 Aurora 功能。与 Aurora MySQL Serverless v1 相比,它还具有更快、更细粒度的扩展。

Aurora MySQL 版本 3 的发布说明

有关所有 Aurora MySQL 版本 3 发布的发布说明,请参阅《Aurora MySQL 发布说明》中的 Amazon Aurora MySQL 版本 3 的数据库引擎更新

新的并行查询优化

Aurora 并行查询优化现在适用于更多的 SQL 操作:

  • 并行查询现在适用于包含数据类型 TEXTBLOBJSONGEOMETRYVARCHAR 以及超过 768 个字节的 CHAR 的表。

  • 并行查询可以优化涉及分区表的查询。

  • 并行查询可以优化涉及选择列表中聚合函数调用的查询和 HAVING 子句。

有关这些增强功能的更多信息,请参阅 将并行查询集群升级到 Aurora MySQL 版本 3。有关 Aurora 并行查询的一般信息,请参阅 Amazon Aurora MySQL 的并行查询

进行优化以缩短数据库重启时间

在计划内和计划外停机期间,您的 Aurora MySQL 数据库集群都必须具有高可用性。

数据库管理员需要偶尔进行数据库维护。此维护包括数据库修补、升级、需要手动重启的数据库参数修改、执行故障转移以缩短实例类更改所花费的时间等。这些计划内操作需要停机。

但是,停机也可能由计划外操作引起,例如由于底层硬件故障或数据库资源限制而导致的意外故障转移。所有这些计划内和计划外操作都会导致数据库重启。

在 Aurora MySQL 3.05 及更高版本中,我们引入了缩短数据库重启时间的优化措施。与未进行优化相比,这些优化措施可减少多达 65% 的停机时间,并且在重启后数据库工作负载的中断也会减少。

在数据库启动期间,会初始化许多内部内存组件。其中最大的是 InnoDB 缓冲池,在 Aurora MySQL 中,该缓冲池默认为实例内存大小的 75%。我们经测试发现,初始化时间与 InnoDB 缓冲池的大小成正比,因此会随着数据库实例类的大小而扩展。在此初始化阶段,数据库无法接受连接,这会导致重启期间的停机时间更长。Aurora MySQL 快速重启的第一阶段优化了缓冲池初始化,这将会缩短数据库初始化的时间,从而缩短总体重启时间。

有关更多详细信息,请参阅博客借助 Amazon Aurora MySQL 数据库重启时间优化减少停机时间