7月4日、MySQLはMySQL 9.0をリリースした。
MySQLは、人気のあるオープンソースのリレーショナルデータベース管理システムであり、この度公式にバージョン9.0を発表した。
MySQL 9.0は、前バージョンのMySQL 8.4から多くの新機能が追加され、いくつかの機能が廃止または削除された。
![](https://res.cloudinary.com/techfeed/image/upload/v1720042626/entries/yyoyzejmne9ocu3qkwfx.png)
MySQL 9.0で追加または変更された機能
VECTOR型サポート
MySQL 9.0では、VECTORカラムタイプがサポートされる。VECTORは、4バイトの浮動小数点値のリストとして表現されるデータ構造であり、バイナリ文字列またはリスト形式の文字列として表現可能である。VECTORカラムは、最大長またはエントリ数を指定して宣言する(デフォルトは2048、最大は16383)。mysql> CREATE TABLE v1 (c1 VECTOR(5000)); Query OK, 0 rows affected (0.03 sec)
VECTORカラムにはいくつかの制約があり、これらは主キー、外部キー、一意キー、パーティションキーとして使用できない。また、多くの関数や演算子と共に使用することもできない。
mysql> SELECT STRING_TO_VECTOR('[2, 3, 5, 7]'); +------------------------------------------------------+ | TO_VECTOR('[2, 3, 5, 7]') | +------------------------------------------------------+ | 0x00000040000040400000A0400000E040 | +------------------------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT VECTOR_TO_STRING(0x00000040000040400000A0400000E040); +------------------------------------------------------+ | VECTOR_TO_STRING(0x00000040000040400000A0400000E040) | +------------------------------------------------------+ | [2.00000e+00,3.00000e+00,5.00000e+00,7.00000e+00] | +------------------------------------------------------+ 1 row in set (0.00 sec)
EXPLAIN ANALYZEのJSON出力保存
EXPLAIN ANALYZEのJSON出力をユーザ変数に保存する機能が追加された。この機能は、FORMAT=JSON
を明示的に指定する必要がある。EXPLAIN ANALYZE FORMAT=JSON INTO @variable select_stmt
イベントDDLの準備文での使用
MySQL 9.0.0から、CREATE EVENT、ALTER EVENT、DROP EVENTのステートメントが準備文として使用できるようになった。ただし、位置パラメータ(? プレースホルダー)はサポートされていない。パフォーマンススキーマシステム変数テーブル
MySQL 9.0では、サーバーシステム変数に関する情報を提供する、「variables_metadata」と「global_variable_attributes」の2つの新しいテーブルが追加された。これらのテーブルは、システム変数のタイプ、スコープ、許容値などの詳細を提供し、システムのパフォーマンスを高く保つのに力を発揮する。
MySQL 9.0で廃止された機能
- パフォーマンススキーマvariables_infoテーブルのスキーマが変更
variables_infoテーブルのMIN_VALUEとMAX_VALUE列は廃止され、将来のリリースで削除される予定である。代わりに、variables_metadataテーブルの同名の列を使用することが推奨される。
MySQL 9.0で削除された機能
mysql_native_passwordプラグイン
MySQL 8.0で廃止されたmysql_native_password認証プラグインが削除された。この変更により、古いクライアントプログラムからのmysql_native認証要求はサーバーによって拒否されるようになった。--mysql-native-passwordサーバーオプション --mysql-native-password-proxy-usersサーバーオプション default_authentication_pluginサーバーシステム変数
詳細はMySQL 9.0のリリースノートを参照していただきたい。