Chapter 02

Aurora MySQL v3 の新機能

hmatsu47
hmatsu47
2022.04.22に更新

この章について

移行計画の前に、Aurora MySQL v3 の新機能について簡単に触れておきます。

本家(コミュニティ版)MySQL 8.0 由来の新機能

Aurora MySQL v3 はコミュニティ版 MySQL 8.0 をベースに開発されているため、コミュニティ版 MySQL 8.0 の新機能の多くが利用可能です。

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.MySQL80.html#AuroraMySQL.8.0-features-community
https://dev.mysql.com/doc/refman/8.0/ja/mysql-nutshell.html

補足資料

https://speakerdeck.com/hmatsu47/mysql-8-dot-0hefalseyi-xing-wokao-eru
https://github.com/hmatsu47/mysql80_no_usui_hon

主な新機能

強化された機能

サポートされない機能など

MySQL 8.0 の一部(新)機能は Aurora MySQL v3 ではサポートされません。

  • AUTO_INCREMENT値の保持
    • 再起動後は保持されるが、スナップショットからの復元時などには保持されない
  • リソースグループ
  • UNDOテーブル領域の新機能
    • Aurora ではストレージレイヤのアーキテクチャが異なるため
  • TLS 1.3
  • MySQL プラグインの設定
  • X プラグイン(ドキュメントストア機能)

その他

一部のキーワードが MySQL 8.0.26 からバックポートされています。

Aurora MySQL v3 独自機能の変更点

全体的に Aurora 独自機能が減り本家 MySQL 8.0 のオリジナル実装に寄せた印象です。

なお、2022/04/21 に Aurora Serverless v2 が GA になり、Aurora MySQL v3 対応になりました。

パラレルクエリ

独自機能として残り、適用範囲が拡大されました。

  • 新しいパラレルクエリの最適化
    • 以下を含む SQL 文をサポート
      • TEXTBLOBJSONGEOMETRYVARCHAR・768 バイトより長いCHAR型を含んだテーブル
      • パーティショニングテーブル
      • SELECTのリスト(射影)内およびHAVING句内の集計関数

インスタント DDL

独自機能が廃止され、本家のインスタント DDL が採用されました。

クエリキャッシュ(廃止)

クエリキャッシュは I/O の低減に寄与する一方で並列スレッドのロック競合を引き起こすなどの問題があり、MySQL 5.6 の時点ですでに非推奨になっていましたが、MySQL 8.0 で廃止されました。

これに合わせて、Aurora MySQL v3 でも Aurora 独自仕様のクエリキャッシュが廃止されました。

Aurora MySQL v1 でクエリキャッシュを使用していた場合は、パフォーマンスの変化に気を付ける必要があります。

Aurora Serverless v2(2020/04/22 追記)

Aurora MySQL v3 のバージョン 3.02.0 より、Aurora Serverless v2 がサポートされました。

Aurora Serverless v1 とは異なり、プロビジョンドインスタンスと同じクラスタにサーバレスインスタンスを配置できます。