

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Aurora MySQL 第 3 版與 MySQL 8.0 相容
<a name="AuroraMySQL.MySQL80"></a>

 您可以使用 Aurora MySQL 第 3 版，取得與 MySQL 相容的最新功能、效能增強功能和錯誤修正。你可以在下文了解 Aurora MySQL 第 3 版，與 MySQL 8.0 的相容性。您可以了解如何將叢集和應用程式升級至 Aurora MySQL 第 3 版。

 一些 Aurora 功能，例如 Aurora Serverless v2, 需要 Aurora MySQL 第 3 版。

**Topics**
+ [MySQL 8.0 社群版的功能](#AuroraMySQL.8.0-features-community)
+ [Aurora MySQL Serverless v2 的 Aurora MySQL 第 3 版先決條件](#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 參考手冊》**中的[視窗函數](https://dev.mysql.com/doc/refman/8.0/en/window-functions.html)。
+ 一般資料表表達式 (CTE)，使用 `WITH` 子句。如需用法資訊，請參閱《MySQL 參考手冊》**中的 [WITH (一般資料表表達式)](https://dev.mysql.com/doc/refman/8.0/en/with.html)。
+ 已針對 `ALTER TABLE` 陳述式最佳化 `ADD COLUMN` 和 `RENAME COLUMN` 子句。這些最佳化稱為「即時 DDL」。Aurora MySQL 第 3 版與社群 MySQL 即時 DLL 功能相容。未使用早期的 Aurora 快速 DLL 功能。如需即時 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 社群的完整功能清單，請參閱部落格文章 [The complete list of new features in 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 Serverless v2 的 Aurora MySQL 第 3 版先決條件
<a name="AuroraMySQL.serverless-v2-8.0-prereq"></a>

 Aurora MySQL 第 3 版是 Aurora MySQL Aurora serverless叢集中所有資料庫執行個體的先決條件。Aurora MySQL Aurora serverless包含對資料庫叢集中讀取器執行個體的支援，以及其他不適用於 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.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.30Updates.html)。

## 新的平行查詢最佳化
<a name="AuroraMySQL.8.0-features-pq"></a>

 Aurora 平行查詢最佳化現在適用於更多的 SQL 作業：
+  平行查詢現在適用於包含資料類型 `TEXT`、`BLOB`、`JSON`、`GEOMETRY` 和 `VARCHAR`，以及 `CHAR` (長度超過 768 個位元組) 的資料表。
+  平行查詢可以最佳化涉及分割資料表的查詢。
+  平行查詢可以最佳化查詢，其中涉及選取清單中的彙總函數呼叫，以及 `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://aws.amazon.com/blogs/database/best-practices-for-amazon-aurora-mysql-database-configuration/)，在 Aurora MySQL 中預設為執行個體記憶體大小的 75%。我們的測試發現初始化時間與 InnoDB 緩衝池的大小成正比，因此可以隨著資料庫執行個體類別大小進行擴展。在此初始化階段，資料庫無法接受連線，這會在重新啟動期間造成較長的停機時間。Aurora MySQL 快速重新啟動的第一階段會最佳化緩衝區集區初始化，以減少資料庫初始化的時間，進而減少整體重新啟動時間。

如需詳細資訊，請參閱部落格：[利用 Amazon Aurora MySQL 資料庫重新啟動時間最佳化減少停機時間](https://aws.amazon.com/blogs/database/reduce-downtime-with-amazon-aurora-mysql-database-restart-time-optimizations/)。