

# Aurora MySQL バージョン 3 は MYSQL 8.0 との互換性があります。
<a name="AuroraMySQL.MySQL80"></a>

 Aurora MySQL バージョン 3 を使用して、MySQL 互換の最新機能、パフォーマンスの強化、およびバグ修正を入手できます。以下では、MySQL 8.0 の互換性を持つ Aurora MySQL バージョン 3 について学ぶことができます。クラスターとアプリケーションを Aurora MySQL バージョン 3 にアップグレードする方法を学ぶことができます。

 Aurora Serverless v2 など、Aurora の一部の機能は、Aurora MySQL バージョン 3 を必要とします。

**Topics**
+ [MySQL 8.0 コミュニティエディションからの機能](#AuroraMySQL.8.0-features-community)
+ [Aurora MySQL サーバーレス 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 リファレンスマニュアル* の[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 サーバーレス v2 の前提条件である Aurora MySQL バージョン 3
<a name="AuroraMySQL.serverless-v2-8.0-prereq"></a>

 Aurora MySQL バージョン 3 は、Aurora MySQL サーバーレス v2 クラスター内のすべての DB インスタンスの前提条件です。Aurora MySQL サーバーレス v2 には、DB クラスター内のリーダーインスタンスのサポートと、Aurora MySQL サーバーレス v1 では利用できない Aurora 機能のサポートが含まれています。また、Aurora MySQL サーバーレス 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`、そして 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 DB クラスターは、計画的な停止時と計画外の停止時の両方で高い可用性を備えている必要があります。

データベース管理者は時折データベースのメンテナンスを行う必要があります。このメンテナンスには、データベースのパッチ適用、アップグレード、手動での再起動が必要なデータベースパラメータの変更、インスタンスクラスの変更にかかる時間を短縮するためのフェイルオーバーの実行などが含まれます。これらの計画的なアクションには、ダウンタイムが伴います。

ただし、基盤となるハードウェア障害やデータベースリソースのスロットリングによる予期しないフェイルオーバーなど、計画外のアクションによってもダウンタイムが発生することもあります。これらの計画的なアクションでも、計画外のアクションでも、必ずデータベースの再起動が必要です。

Aurora MySQL バージョン 3.05 以降では、データベースの再起動時間を短縮するための最適化が導入されました。これらの最適化により、最適化を行わない場合と比べてダウンタイムが最大 65% 短縮され、再起動後のデータベースワークロードの中断も少なくなります。

データベースのスタートアップ時には、多くの内部メモリコンポーネントが初期化されます。これらの中で最大のものは [InnoDB バッファープール](https://aws.amazon.com/blogs/database/best-practices-for-amazon-aurora-mysql-database-configuration/)で、Aurora MySQL ではデフォルトでインスタンスのメモリサイズの 75% です。テストの結果、初期化時間は InnoDB バッファプールのサイズに比例し、DB インスタンスクラスのサイズに合わせて調整されることがわかりました。この初期化フェーズでは、データベースは接続を受け付けられないため、再起動時のダウンタイムが長くなります。Aurora MySQL 高速再起動の第 1 フェーズでは、バッファープールの初期化が最適化されます。これにより、データベースの初期化時間が短縮され、全体的な再起動時間が短縮されます。

詳細については、ブログ「[Amazon Aurora MySQL データベースの再起動時間の最適化によってダウンタイムを削減する](https://aws.amazon.com/blogs/database/reduce-downtime-with-amazon-aurora-mysql-database-restart-time-optimizations/)」を参照してください。