アップデートの内容は以下の通りです。
※これらの文章は抄訳です。すべての内容を確認したい場合は原文を参照してください。
リリース日
2020年7月13日主な内容
MySQL 8.0.21のドキュメントでは、下記のようにコードを変更しました。
“master” → “source”、“slave” → “replica”、“whitelist” → “allowlist”、“blacklist” → “blocklist”
現在、製品の構文に変更はありません。したがって、これらの用語は、現在のコードでの使用が必要なドキュメントにまだ存在しています。
詳細については、ブログ記事「MySQL Terminology Updates」を参照してください。
- アカウント管理
- MySQLユーザーアカウントを作成または更新するときに、ユーザーごとのコメントと属性を設定できるようになりました。
- C API
- MySQL C APIは、非同期関数の圧縮をサポートするようになりました。
- コンパイル
- サーバビルド用のBoostライブラリの最小バージョンが1.72.0になりました。
- 接続管理
- MySQLサーバは、通常のクライアント接続用のメインネットワークインターフェースと、オプションで管理クライアント接続用の管理ネットワークインターフェースをサポートしています。以前は、メインインターフェースと管理インターフェースでは、暗号化接続用の証明書やキーファイルなど、同じ TLS 設定を使用していました。現在は、管理インターフェイス用に TLS マテリアルを個別に設定することが可能になりました。
- 非推奨および削除に関する注意事項
- パーテンション化:インデックスプレフィックスを持つカラムは、テーブルのパーティショニングキーの一部としてサポートされていません。以前は、キーによってパーティショニングされたテーブルの作成、変更、またはアップグレードで参照されたときに、そのようなカラムはサーバーによって単純に省略されましたが、提案されたパーティショニング関数がプレフィックス付きの列のみを使用した場合を除き、この省略が行われたことは表示されませんでした。この動作は現在非推奨となっており、将来のリリースでは、提案されたパーティショニングキーでそのような列を使用すると、それらが発生したCREATE TABLEやALTER TABLEステートメントが拒否されるようになります。
- JSON
- JSON_VALUE()関数が追加され、JSONカラムへのインデックスの作成が簡単になりました。JSON_VALUE(json_doc, path RETURNING type)の呼び出しは、CAST(JSON_UNQUOTE(JSON_EXTRACT(json_doc, path))AS type)の呼び出しと同等です。ここで、json_docはJSONドキュメントであり、pathはドキュメント内の単一の値を指すJSONパス式であり、typeはCAST()と互換性のあるデータ型です。
- パッケージ
- RPMおよびDebianパッケージの場合、クライアント側プラグインがサーバーパッケージからクライアントパッケージに移動されました。 さらに、クライアント側プラグインのデバッグバージョンがテストパッケージに移動されました。
- Windows用のMSIパッケージには、レガシーサーバーデータコンポーネントが含まれなくなりました。
- セキュリティ
- 互換性のない変更:INFORMATION_SCHEMA.FILESテーブルへのアクセスに はPROCESS特権が必要になりました。
- OpenSSLライブラリがバンドルされているプラットフォームでは、MySQLサーバーのリンクされたOpenSSLライブラリがバージョン1.1.1gに更新されました。
- 追加、変更された機能
- 重要な変更:デフォルトでは、CRC32に設定されているシステム変数のbinlog_checksumによって指定された、各イベントのチェックサムをバイナリログに書き込みます。以前は、グループレプリケーションはバイナリログ内のチェックサムをサポートしていなかったため、グループメンバーになるサーバーインスタンスを構成するときにbinlog_checksumをNONEに設定する必要がありました。現在はこの要件は削除され、デフォルトを使用できるようになりました。binlog_checksumの設定は、グループのすべてのメンバーで同じである必要はありません。
- InnoDB:ALTER INSTANCE {ENABLE | DISABLE} INNODB REDO_LOG構文を使用して、REDOロギングを有効および無効にできるようになりました。
- InnoDB:ビジーなシステムでアンドゥテーブルスペースを切り捨てると、古いアンドゥテーブルスペースのページをバッファプールから削除し、新しいアンドゥテーブルスペースの初期ページをディスクにフラッシュする関連するフラッシュ操作により、パフォーマンスに影響を与える可能性がありました。 この問題に対処するために、フラッシュ操作が削除されました。
- InnoDB:起動時に、InnoDBテーブルスペースファイルが別の場所に移動された場合に備えて、データディクショナリに保存されているテーブルスペースファイルパスに対し、既知のテーブルスペースファイルのパスを検証します。新しい innodb_validate_tablespace_paths 変数により、テーブルスペースパスの検証を無効にすることができます。
- InnoDB:DATA DIRECTORYの規定を使用してデータディレクトリの外部に作成されたテーブルおよびテーブルパーティションデータファイルは、InnoDBが認識しているディレクトリに制限されるようになりました。
- InnoDB:テーブルおよび行リソースのロックキューへのアクセスを必要とする操作の同時実行性を向上させるために、ロックシステムミューテックス(lock_sys-> mutex)はシャードラッチに置き換えられ、ロックキューはテーブルとページのlock queue shardsにグループ化され、専用のミューテックスによって各シャードは保護されました。 以前は、単一のロックシステムミューテックスがすべてのロックキューを保護していましたが、これは同時実行性の高いシステムでの競合のポイントでした。 新しいシャード実装により、ロックキューへのより詳細なアクセスが可能になりました。