MySQL 9.0登場。 JavaScriptストアドプログラムが利用可能に、ベクトル型もサポート

2024年7月8日

オラクルはリレーショナルデータベース「MySQL」の新バージョンとなる「MySQL 9.0」をリリースしました。

MySQL 9.0

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ストアドプログラム対応

ストアドプログラムとは、データベースエンジン側にあらかじめまとまったクエリ処理などを登録しておき、必要に応じて呼び出すことでその処理を実行できる機能です。

アプリケーション側から処理を切り離しつつ、アプリケーションから呼び出してデータベースエンジン内で処理を実行できるため、複雑な処理をアプリケーションから隠蔽しつつ、アプリケーションとデータベースサーバ間でのデータ転送が最小限となるためネットワークの負荷が軽く、セキュアに処理できる、などのメリットがあります。

下記はそのサンプルコードです。

CREATE FUNCTION gcd(a INT, b INT) 
RETURNS INT 
NO SQL 
LANGUAGE JAVASCRIPT AS
  $mle$
    let x = Math.abs(a)
    let y = Math.abs(b)
    while(y) {
      var t = y
      y = x % y
      x = t
    }
    return x
  $mle$
;

ストアドプログラムをJavaScriptで記述できるようになることで、より多くの開発者がMySQLの機能を活用できるようになることが期待されます。

オラクルは今年(2024年)1月に、ストアドプログラムでJavaScript対応を行ったMySQL Enterprise Editionプレビュー版として公開しています。

そのときの説明では、オラクルが開発している多言語対応の仮想マシンであるGraalVM Enterprise Editionを用いていると説明されていました。この機能がMySQL 9.0で正式に採用されたものとみられます。

参考:オラクル、MySQLのデータベースエンジンでJavaScriptをサポート、ストアドプロシージャなどJavaScriptで記述可能に。プレビュー版をリリース

ベクトル(Vector)型をサポート

テーブル内にベクトル型の列を持てるようになりました。ベクトルは4バイトの浮動小数点のリストとして構成され、バイナリ文字列もしくはフォーマット化された文字列のリストとして表現されます。

下記はベクトル型の列を持つテーブルを作成したところです。

mysql> CREATE TABLE v1 (c1 VECTOR(5000));
Query OK, 0 rows affected (0.03 sec)

Explain Analyzeの結果をJSON形式で出力可能に

クエリをどのように実行するかを示す実行計画を出力する「Explain Analyze」の結果をJSON形式で出力可能になりました。

EXPLAIN ANALYZE FORMAT=JSON INTO @variable select_stmt

あわせて読みたい

JavaScript MySQL RDB データベース プログラミング言語 Oracle




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本