ウェブサイト検索

MySQL 9.2がリリースされ、JavaScriptトランザクショナルAPIが追加されました。


MySQL 9.2のリリースハイライトを探求し、新機能、非推奨項目、削除された機能を含め、データベース管理とパフォーマンスの向上を図ります。

広く採用されているオープンソースのRDBMSであるMySQLは、9.xシリーズの2回目のアップデートであるバージョン9.2を発表し、いくつかの新機能を追加するとともに、特定の機能を非推奨および削除しました。

リリースのハイライトの一つは、新しいCREATE_SPATIAL_REFERENCE_SYSTEM権限であり、これによりユーザーは「CREATE SPATIAL REFERENCE SYSTEM<&47;em>」、「CREATE OR REPLACE SPATIAL REFERENCE SYSTEM<&47;em>」、および「DROP SPATIAL REFERENCE SYSTEM<&47;em>」などのステートメントを実行する能力が与えられます。

しかし、この特権(またはSUPER特権)なしでこれらのステートメントを実行するとエラーが発生します。SUPER特権はこれらのステートメントに対してまだ使用できますが、開発者はその使用を非推奨と見なし、適切に移行を計画すべきです。

JavaScriptライブラリの側では、多くの変更があり、最も注目すべきはMySQLの多言語エンジンコンポーネント(MLE)で、これにより再利用可能なJavaScriptライブラリがサポートされ、異なるストアドプログラム間でJavaScript関数の共有と管理が容易になりました。

言い換えれば、CREATE LIBRARYおよびDROP LIBRARYステートメントを使用して、コードを再利用可能なモジュールに効率的に整理できるようになりました。

さらに、JavaScriptライブラリは、新しいUSING<&47;code>句を使用して、&8220;CREATE FUNCTION<&47;em>&8221;または&8220;CREATE PROCEDURE<&47;em>&8221;内の他の保存されたプログラムに含めることができます。さらに、MySQL 9.2.0は、既存のライブラリのコードを取得するための便利な&8220;SHOW CREATE LIBRARY<&47;em>&8221;ステートメントを提供し、これらのJavaScriptリソースを追跡および管理するための2つの新しい情報スキーマテーブル—LIBRARIESとROUTINE_LIBRARIES—を提供します。

MLEコンポーネントは、JavaScriptルーチンがMySQLに保存された関数、プロシージャ、およびユーザー定義のセッション変数を呼び出すことを可能にすることで、その範囲を拡大します。これにより、JavaScriptはgetFunction()<&47;code>やgetProcedure()<&47;code>などのメソッドを介してMySQLの関数やプロシージャを呼び出すことができます。

セッション変数は、JavaScriptのグローバルSession<&47;code>オブジェクトを通じて直接アクセスできるようになったことも注目に値します。9.2リリースでは、グローバルMysql<&47;code>オブジェクトを介して、rand()<&47;code>、sleep()<&47;code>、uuid()<&47;code>、およびisUUID()<&47;code>などのMySQLの組み込み関数に直接JavaScriptからアクセスできるようになりました。

トランザクションサポートはもう一つのエキサイティングな追加機能です:MySQL 9.2は、START TRANSACTION<&47;code>、COMMIT<&47;code>、ROLLBACK<&47;code>、およびSET AUTOCOMMIT<&47;code>などのMySQLの標準SQLコマンドに対応するJavaScriptトランザクショナルAPIを提供します。セーブポイントも含まれています。このトランザクション機能に伴うのはSqlErrorオブジェクトで、JavaScriptルーチン内での堅牢なエラーハンドリングを可能にします。

さらに、MySQLのENUMおよびSETデータ型は、JavaScriptのストアドルーチンで認識されるようになり、スムーズな相互変換が可能になりました。したがって、アプリケーションがこれらの型に依存している場合、面倒な変換なしでJavaScriptで直接操作できます。

MySQL 9.2は、システム変数「explain_json_format_version」が2に設定されているときに、EXPLAIN FORMAT=JSON<&47;code>の出力にフォーマットバージョン情報を追加します。この追加により、開発者は異なるJSON出力フォーマットを区別し、それに応じてツールやスクリプトを適応させることができます。フォーマットバージョンが1の場合、EXPLAINの結果は古いプロセスとの互換性を維持するためにこのバージョン情報を省略します。

上記の新しい追加に加えて、MySQL 9.2はいくつかの機能を非推奨としてフラグ付けしています。権限テーブルを再読み込みするために長い間使用されてきたFLUSH PRIVILEGESステートメントは、現在非推奨です。Version Tokensプラグインも将来のリリースで削除される予定です。

同時に、新しいリリースでは、バージョン9.1で以前は利用可能だった特定のアイテムが完全に削除されているため、開発者はアップグレードや複製時にその不在に注意する必要があります。例えば、BINLOGキーワードはストアドルーチン内での引用なしの使用にはもはや利用できません。

詳細については、リリースノートを確認するか、MySQL 9.2がもたらすすべての変更をレビューするためにこちらをご覧ください。