

# 与 MySQL 8.0 兼容的 Aurora MySQL 版本 3
<a name="AuroraMySQL.MySQL80"></a>

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

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

**Topics**
+ [MySQL 8.0 社群版中的功能](#AuroraMySQL.8.0-features-community)
+ [Aurora MySQL 版本 3 是 Aurora MySQL Serverless v2 的先决条件](#AuroraMySQL.serverless-v2-8.0-prereq)
+ [Aurora MySQL 版本 3 的发布说明](#AuroraMySQL.mysql80-bugs-fixed)
+ [新的并行查询优化](#AuroraMySQL.8.0-features-pq)
+ [进行优化以缩短数据库重启时间](#ReducedRestartTime)
+ [Aurora MySQL 版本 3 中的新临时表行为](ams3-temptable-behavior.md)
+ [比较 Aurora MySQL 版本 2 和 Aurora MySQL 版本 3](AuroraMySQL.Compare-v2-v3.md)
+ [比较 Aurora MySQL 版本 3 和 MySQL 8.0 社群版](AuroraMySQL.Compare-80-v3.md)
+ [升级到 Aurora MySQL 版本 3](AuroraMySQL.mysql80-upgrade-procedure.md)

## MySQL 8.0 社群版中的功能
<a name="AuroraMySQL.8.0-features-community"></a>

 Aurora MySQL 版本 3 的初始版本与 MySQL 8.0.23 社群版兼容。MySQL 8.0 引入了几项新功能，包括以下功能：
+ 原子数据定义语言（DDL）支持。有关更多信息，请参阅 [原子数据定义语言（DDL）支持](AuroraMySQL.Compare-v2-v3.md#AuroraMySQL.Compare-v2-v3-atomic-ddl)。
+ JSON 函数。有关使用信息，请参阅 *MySQL 参考手册*中的 [JSON 函数](https://dev.mysql.com/doc/refman/8.0/en/json-functions.html)。
+ 窗口函数。有关使用信息，请参阅 *MySQL 参考手册*中的 [Window 函数](https://dev.mysql.com/doc/refman/8.0/en/window-functions.html)。
+ 使用 `WITH` 子句的公用表表达式 (CTE)。有关使用信息，请参阅 *MySQL 参考手册*中的 [WITH（公用表表达式）](https://dev.mysql.com/doc/refman/8.0/en/with.html)。
+ `ALTER TABLE` 语句的优化 `ADD COLUMN` 和 `RENAME COLUMN` 子句。这些优化被称为“即时 DDL”。Aurora MySQL 版本 3 与社群 MySQL 即时 DDL 功能兼容。未使用以前的 Aurora 快速 DDL 功能。有关即时 DDL 的使用信息，请参阅 [即时 DDL（Aurora MySQL 版本 3）](AuroraMySQL.Managing.FastDDL.md#AuroraMySQL.mysql80-instant-ddl)。
+ 降序、功能性和不可见的索引。有关使用信息，请参阅 *MySQL 参考手册*中的[不可见索引](https://dev.mysql.com/doc/refman/8.0/en/invisible-indexes.html)、[降序索引](https://dev.mysql.com/doc/refman/8.0/en/descending-indexes.html)和 [CREATE INDEX 语句](https://dev.mysql.com/doc/refman/8.0/en/create-index.html#create-index-functional-key-parts)。
+ 通过 SQL 语句控制的基于角色的权限。有关更改权限模型的更多信息，请参阅 [基于角色的权限模型](AuroraMySQL.Compare-80-v3.md#AuroraMySQL.privilege-model)。
+ 带有 `SELECT ... FOR SHARE` 语句的 `NOWAIT` 和 `SKIP LOCKED` 子句。这些子句避免了等待其他事务释放行锁。有关使用信息，请参阅 *MySQL 参考手册*中的[锁定读取](https://dev.mysql.com/doc/refman/8.0/en/innodb-locking-reads.html)。
+ 改进二进制日志 (binlog) 复制。有关 Aurora MySQL 的详细信息，请参阅 [二进制日志复制](AuroraMySQL.Compare-v2-v3.md#AuroraMySQL.mysql80-binlog)。特别是，您可以执行筛选的复制。有关筛选复制的使用信息，请参阅 *MySQL 参考手册*中的[服务器如何评估复制筛选规则](https://dev.mysql.com/doc/refman/8.0/en/replication-rules.html)。
+ 提示。一些 MySQL 8.0 兼容的提示已被向后移植到 Aurora MySQL 版本 2。有关将提示用于 Aurora MySQL 的信息，请参阅 [Aurora MySQL 提示](AuroraMySQL.Reference.Hints.md)。有关社群 MySQL 8.0 中的完整提示列表，请参阅 *MySQL 参考手册*中的[优化程序提示](https://dev.mysql.com/doc/refman/8.0/en/optimizer-hints.html)。

有关添加到 MySQL 8.0 社群版的功能的完整列表，请参阅博客文章 [MySQL 8.0 中的完整新功能列表](https://dev.mysql.com/blog-archive/the-complete-list-of-new-features-in-mysql-8-0/)。

Aurora MySQL 版本 3 还包括对包容性语言的关键字的更改，从社群 MySQL 8.0.26 向后移植。有关更改的详细信息，请参阅 [Aurora MySQL 版本 3 的包容性语言更改](AuroraMySQL.Compare-v2-v3.md#AuroraMySQL.8.0-inclusive-language)。

## Aurora MySQL 版本 3 是 Aurora MySQL Serverless v2 的先决条件
<a name="AuroraMySQL.serverless-v2-8.0-prereq"></a>

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

## Aurora MySQL 版本 3 的发布说明
<a name="AuroraMySQL.mysql80-bugs-fixed"></a>

 有关所有 Aurora MySQL 版本 3 发布的发布说明，请参阅《Aurora MySQL 发布说明》中的 [Amazon Aurora MySQL 版本 3 的数据库引擎更新](https://docs.amazonaws.cn/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.30Updates.html)**。

## 新的并行查询优化
<a name="AuroraMySQL.8.0-features-pq"></a>

 Aurora 并行查询优化现在适用于更多的 SQL 操作：
+  并行查询现在适用于包含数据类型 `TEXT`、`BLOB`、`JSON`、`GEOMETRY` 和 `VARCHAR` 以及超过 768 个字节的 `CHAR` 的表。
+  并行查询可以优化涉及分区表的查询。
+  并行查询可以优化涉及选择列表中聚合函数调用的查询和 `HAVING` 子句。

 有关这些增强功能的更多信息，请参阅 [将并行查询集群升级到 Aurora MySQL 版本 3](aurora-mysql-parallel-query-optimizing.md#aurora-mysql-parallel-query-upgrade-pqv2)。有关 Aurora 并行查询的一般信息，请参阅 [Amazon Aurora MySQL 的并行查询](aurora-mysql-parallel-query.md)。

## 进行优化以缩短数据库重启时间
<a name="ReducedRestartTime"></a>

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

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

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

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

在数据库启动期间，会初始化许多内部内存组件。其中最大的是 [InnoDB 缓冲池](https://www.amazonaws.cn/blogs/database/best-practices-for-amazon-aurora-mysql-database-configuration/)，在 Aurora MySQL 中，该缓冲池默认为实例内存大小的 75％。我们经测试发现，初始化时间与 InnoDB 缓冲池的大小成正比，因此会随着数据库实例类的大小而扩展。在此初始化阶段，数据库无法接受连接，这会导致重启期间的停机时间更长。Aurora MySQL 快速重启的第一阶段优化了缓冲池初始化，这将会缩短数据库初始化的时间，从而缩短总体重启时间。

有关更多详细信息，请参阅博客[借助 Amazon Aurora MySQL 数据库重启时间优化减少停机时间](https://www.amazonaws.cn/blogs/database/reduce-downtime-with-amazon-aurora-mysql-database-restart-time-optimizations/)。