SQLite 3.45がリリース - JSON関数がJSONBをサポートしパフォーマンスが大幅に向上

[PR]記事内のアフィリエイトリンクから収入を得る場合があります
  • URLをコピーしました!

S 20240116 94646

SQLite開発チームは1月15日(現地時間)、SQLiteデータベースの最新版「SQLite 3.45」をリリースしました(Phoronix)。

SQLite 3.45では、JSON SQL関数の改良が行われ、JSONBと呼ばれる新しい内部パースツリー形式を使用するように書き換えられています。JSONBはJSONのの新しい内部バイナリ表現で、SQL BLOBとして格納され、既存のJSONサポートよりも数倍のパフォーマンス向上が期待できます。

JSONBに関してSQLiteのドキュメントは次のように説明しています。

SQLite allows its internal "parse tree" representation of JSON to be stored on disk, as a BLOB, in a format that we call "JSONB". By storing SQLite's internal binary representation of JSON directly in the database, applications can bypass the overhead of parsing and rendering JSON when reading and updating JSON values. The internal JSONB format is also uses slightly less disk space then text JSON

Any SQL function parameter that accepts text JSON as an input will also accept a BLOB in the JSONB format. The function will operate the same in either case, except that it will run faster when the input is JSONB, since it does not need to run the JSON parser.

SQLiteでは、JSONの内部的な「パースツリー」表現を、「JSONB」と呼ぶフォーマットで、BLOBとしてディスクに格納することができます。SQLite内部のJSON のバイナリ表現を直接データベースに格納することで、アプリケーションは JSON 値の読み取りや更新時に JSON の解析やレンダリングにかかるオーバーヘッドを回避することができます。内部 JSONB フォーマットは、テキスト JSON よりも使用するディスク容量がわずかに少なくなります。

テキストJSONを入力として受け付けるSQL関数のパラメータは、JSONB形式のBLOBも受け付けます。どちらの場合でも関数の動作は同じですが、入力がJSONBの場合はJSONパーサを実行する必要がないため、より高速に実行されます。

その他、SQLITE_DIRECT_OVERFLOW_READ最適化がデフォルトで有効になる変更や、FTS5仮想テーブルに FTS5 tokendataオプションを追加する改良、クエリプランナーの改良、SQLITE_MAX_PAGE_COUNTの増加、CLIの拡張などが行われています。

新バージョンのリリースノートはこちらで確認可能です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次