MySQL 9.0登場。 JavaScriptストアドプログラムが利用可能に、ベクトル型もサポート
今回は「MySQL 9.0登場。 JavaScriptストアドプログラムが利用可能に、ベクトル型もサポート」についてご紹介します。
関連ワード (参考、新機能、隠蔽等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
オラクルはリレーショナルデータベース「MySQL」の新バージョンとなる「MySQL 9.0」をリリースしました。
![MySQL 9.0](https://www.publickey1.jp/2024/mysql90-la.png)
MySQLは現在、数カ月ごとにリリースされ積極的に新機能が追加されるイノベーションリリース(Innovation Release)と、長期で安定して利用されることを想定して2年ごとにリリースされる長期サポート(LTS:Long Term Support)版の2つに分かれてリリースされています。
現在のLTS版は今年(2024年)4月に登場したMySQL 8.4です。
そして今回リリースされたMySQL 9.0はイノベーションリリースに該当します。最新機能をいちはやく試したい開発者やユーザーのためのリリースです。
MySQL 9.0の主な新機能
MySQL 9.0のドキュメント「What Is New in MySQL 9.0」から、新機能「JavaScriptストアドプログラム」「ベクトル型のサポート」「EXPLAIN ANALYZEの結果をJSON形式で出力」の3つを紹介します。
JavaScriptストアドプログラム
MySQL 9.0 Enterprise Editionでは、ストアドプログラムをJavaScriptで記述できるようになりました。対応する仕様は「ECMAScript 2023」です。
![MySQL 9.0でJavaScriptストアドプログラム対応](https://www.publickey1.jp/2024/js_mysql_prev01.png)
ストアドプログラムとは、データベースエンジン側にあらかじめまとまったクエリ処理などを登録しておき、必要に応じて呼び出すことでその処理を実行できる機能です。
アプリケーション側から処理を切り離しつつ、アプリケーションから呼び出してデータベースエンジン内で処理を実行できるため、複雑な処理をアプリケーションから隠蔽しつつ、アプリケーションとデータベースサーバ間でのデータ転送が最小限となるためネットワークの負荷が軽く、セキュアに処理できる、などのメリットがあります。
下記はそのサンプルコードです。
ストアドプログラムをJavaScriptで記述できるようになることで、より多くの開発者がMySQLの機能を活用できるようになることが期待されます。
オラクルは今年(2024年)1月に、ストアドプログラムでJavaScript対応を行ったMySQL Enterprise Editionプレビュー版として公開しています。
そのときの説明では、オラクルが開発している多言語対応の仮想マシンであるGraalVM Enterprise Editionを用いていると説明されていました。この機能がMySQL 9.0で正式に採用されたものとみられます。
参考:オラクル、MySQLのデータベースエンジンでJavaScriptをサポート、ストアドプロシージャなどJavaScriptで記述可能に。プレビュー版をリリース
ベクトル(Vector)型をサポート
テーブル内にベクトル型の列を持てるようになりました。ベクトルは4バイトの浮動小数点のリストとして構成され、バイナリ文字列もしくはフォーマット化された文字列のリストとして表現されます。
下記はベクトル型の列を持つテーブルを作成したところです。
Explain Analyzeの結果をJSON形式で出力可能に
クエリをどのように実行するかを示す実行計画を出力する「Explain Analyze」の結果をJSON形式で出力可能になりました。