用語解説 エスキューライト

SQLiteとは

SQLiteは、サーバを立てずにアプリへ組み込んで使う軽量なリレーショナルデータベースです。データベース全体を1つのファイルに保存し、本体はパブリックドメインなので無料で使えます。できること、使い方、料金、開発元、競合、最近の動向をまとめました。

SQLite(エスキューライト)は、アプリケーションに組み込んで使う軽量なリレーショナルデータベースです。PostgreSQLやMySQLのようにデータベースサーバを別に立てる必要がなく、データベース全体を1つのファイルとして読み書きします。

SQLiteとは:サーバのないデータベース

SQLiteはC言語で書かれたライブラリです。アプリケーションのプロセスの中で動きます。ネットワーク越しに接続するのではなく、アプリがライブラリの関数を呼び出し、ディスク上のファイルを直接操作します。SQLで検索・更新でき、トランザクションにも対応しています。

この仕組みにより、インストールや設定、ユーザー管理などのサーバ運用が要りません。その代わり、多数のクライアントが同時に書き込むような使い方には向いていません。書き込みはデータベース単位で直列に処理されるためです。

何に使えるのか

よく使われるのは、スマートフォンアプリやデスクトップアプリのローカルデータ保存、ブラウザなどの設定・履歴の保存、組み込み機器です。開発やテスト用の手軽なデータベースとしても使われます。

事業会社の企画・DX担当の立場から見ると、「1つのアプリや端末の中でデータを整理して保存する」用途に向いています。社内の多くの人が同時に更新する基幹システムの中心に置くデータベースとしては、サーバ型の製品を選ぶのが一般的です。

最近は、AIエージェントごとに小さなデータベースを大量に用意する使い方も注目されています。SupabaseがTursoの買収を発表したと、Publickeyが報じました。Tursoは1台のサーバで数百万ものSQLiteデータベースをホストするサービスです。買収額や完了時期、買収後にTursoのサービスがどう扱われるかは、当サイトの記事時点では明らかになっていません。

使い方

多くの言語から標準機能やライブラリとして使えます。たとえばPythonなら、標準ライブラリの`sqlite3`をimportしてファイル名を指定するだけで接続できます。ファイルが存在しなければ新しく作られます。コマンドラインツール`sqlite3`を使えば、ターミナルから直接SQLを実行することもできます。

バックアップはファイルをコピーするのが基本です。ただし、書き込み中にそのままコピーすると壊れたファイルができることがあります。SQLiteが用意しているバックアップ機能を使うのが安全です。

料金と開発元

SQLite本体はパブリックドメインで公開されており、商用でも無料で使えます。開発はD. Richard Hipp氏を中心とする少人数のチームが続けています。有償のサポート契約も提供されています。たとえばTailscaleは、SQLite開発者とのサポート契約を結んで障害を調査しました。契約の価格はここでは扱いません。

Tailscaleは、2025年8月からデータベースの破損が起き、6カ月で19件に達したと公表しました。原因は、SQLiteに16年間潜んでいたWAL-Resetのバグだったといいます。WALは、更新内容を先にログへ書き込む方式です。広く使われ、枯れたソフトウェアであっても、不具合が残っていることを示した事例です。

競合・比較対象

組み込み型で分析向けのデータベースとしてはDuckDBが比較対象になります。サーバが必要な規模になれば、PostgreSQLやMySQLが選択肢です。SQLiteを複数の端末やクラウドで使えるように拡張するサービスとしては、上で触れたTursoがあります。

SQLiteに関する記事

2 件