SQLite の最大データベース サイズが 281 TB に増加されましたが、これほど大きなサイズを必要とする人がいるでしょうか?

Table of Contents

SQLite の最大データベース サイズが 281 TB に増加されましたが、これほど大きなサイズを必要とする人がいるでしょうか?

「他のすべてのデータベース エンジンを合わせたよりも多く使用されている」と主張する SQLite がバージョン 3.33.0 にアップデートされ、最大サイズが 281 TB に増加しました。これは、以前の容量 140 TB の約 2 倍です。

SQLiteは、ファイルへの直接の読み書きを行う組み込みデータベースエンジンです。そのため、MySQL、Oracle、SQL Serverなどのシステムとは直接比較できません。SQLiteの人気は、その信頼性、高いパフォーマンス、そしてコンパクトなサイズ、そして常に無料であることに基づいています。

GitHub パッケージレジストリ

ヒップなのは四角い:SQLiteの作者とGitHubが出会ったとき何が起こったか

続きを読む

主著者の D Richard Hipp 氏は、この文書は「パブリック ドメインであり、ライセンスは不要」であると宣言していますが、「法務部門からライセンスを購入する必要があると指示された」などの理由で「所有権の保証」を購入することは可能です。

このライブラリはAndroidやiOSを含む多くのOSに搭載されており、その普及率の高さがうかがえます。組み込み型であるため、データベース業界の他の有名エンジンに比べると知名度は低いです。DB-Enginesは、技術的な議論や求人情報への掲載頻度に基づいてデータベースエンジンをランク付けしており、SQLiteは9位にランク付けされています。これはMicrosoft Accessよりは上ですが、Elasticsearchよりは下です。

互換性はあるが風変わり

SQLiteには他にもいくつか特徴的な機能があります。動的型付けを採用しているため、どの列にもあらゆる型のデータを格納できます。基本的な型は、整数、実数、テキスト、BLOBの4つに限られます。SQLiteでは主キーにNULL値を許容するなど、他にもいくつかの特徴があります。

「これはバグですが、問題が発見された時点では、このバグに依存するデータベースが多数流通していたため、バグのある動作を今後もサポートするという決定が下されました」とドキュメントには記されている。

コードの改善と互換性の維持に関する議論では、SQLite は互換性の側にしっかりと立っており、他の奇妙な動作も同じ理由で維持されています。

SQLiteの新リリースは数ヶ月ごとにリリースされ、バグ修正から重要な機能アップデートまで、多岐にわたります。開発者たちは、このエンジンの信頼性はユニットテストの徹底的な活用によるものだと考えています。テストに充てられているコード行数は、データベースエンジン本体の約640倍に上ります。プログラミング言語はCです。

データベース容量の増強に加え、バージョン3.33.0にはその他の新機能も追加されています。PostgreSQL標準に準拠したUPDATE FROMをサポートし、他のテーブルのデータからテーブルを更新できるようになりました。また、対話型コマンドラインシェル「sqlite3」にも機能強化が図られています。クエリの出力形式が新たにJSON、Markdown、box、tableの4つに拡大されました(最後の3つは表形式のバリエーションです)。

クエリを最適化する内部コンポーネントであるクエリプランナーが改良されました。また、デフォルトのコミット/ロールバックトランザクションモードに代わる、Write-Ahead Logging (WAL) モードも改良され、「ほとんどのシナリオで大幅に高速化」されています。バージョン3.33.0では、クラッシュ後に共有メモリファイルを復元できる機能により、WALの堅牢性が向上しました。

新たに281TBという最大データベースサイズが実現したことは、果たして役立つのでしょうか?SQLiteデータベースのほとんどは小規模です。高性能な組み込みデータベースであるため、リソースが限られており、大規模なデータベースの構築が不可能な環境でよく使用されます。さらに、理論上は281TBをサポートしているものの、SQLiteはデータベースを複数のファイルに分割することができません。そのため、このサイズのファイルをサポートするファイルシステムと、大量のデータを必要としながらも単一のマシンで問題なく動作するアプリケーションの両方が必要になります。

したがって、この新機能の活用例は限られるでしょう。SQLiteはサイズが小さいにもかかわらず、一般的に認識されている以上に様々なシナリオで役立つ可能性があることを改めて認識させてくれるかもしれません。®

Discover More