クラウド
初級
SQLite (Embedded Database)(エスキューライト)
D. Richard Hipp 2000年公開のサーバレス組込型RDBMS。Public Domain・1ファイル・ACID完全準拠、世界で最も普及したDB (推定1兆台超のデバイスに導入)。
0 回閲覧
0 いいね
2026/5/15 更新
関連タグ
DB
SQLite
Embedded
概要
SQLite は2000年8月17日にD. Richard Hipp (米North Carolina) が個人プロジェクトとして公開・Public Domain ライセンスのサーバレス組込型RDBMS。「サーバレス」「1ファイル」「ゼロコンフィグ」「ACID完全準拠」の4つの特徴で、Android / iOS / Windows / macOS / Linux / 自動車・航空機・IoT 全てに搭載、推定累計1兆台以上のデバイスに導入されている「世界で最も普及したDB」。
SQLite 主要特徴
| 特徴 | 説明 |
|---|---|
| サーバレス | プロセス内動作・ネットワークなし |
| 1ファイル | 1つの .sqlite ファイルが全DB |
| ゼロコンフィグ | 設定なしで動作 |
| ACID準拠 | Atomicity / Consistency / Isolation / Durability |
| ライセンス | Public Domain |
| サイズ | コンパイル後600KB 程度 |
| プラットフォーム | 全主要OS + 組込み |
| トランザクション | 完全対応 |
| SQL標準 | SQL-92 ほぼ完全準拠 |
| インデックス | B-tree / Expression / Partial |
主要採用先
| プラットフォーム | 用途 |
|---|---|
| Android | Contacts / SMS / Browser History |
| iOS | Core Data / Messages |
| Windows | Edge browser / Photos |
| macOS | Calendar / Reminders / Notes |
| ブラウザ | Firefox / Chrome 一部 |
| 自動車 | BMW iDrive / Tesla 内部 |
| 航空機 | Airbus A350 / Boeing 787 |
| IoT | スマート家電 |
| ゲーム | Skyrim / 多くのSteam ゲーム |
| アプリ | Adobe / Dropbox / Slack ローカル |
「世界で1人あたり100台のSQLite」と推定されるレベル (累計1兆台 / 80億人)。
ACID 動作
SQLite は組込型ながら完全ACID:
- Atomicity: トランザクションは全成功または全失敗
- Consistency: 制約違反でロールバック
- Isolation: SERIALIZABLE デフォルト (テーブルロック)
- Durability: 同期書込・電源断対応 (Rollback Journal / WAL)
SQLite 主要バージョン
| 年 | バージョン | 主要追加 |
|---|---|---|
| 2000-08 | SQLite 1.0 | 初版 |
| 2004-06 | SQLite 3.0 | UTF-8 / B-tree 改良 |
| 2010-07 | SQLite 3.7 | WAL モード |
| 2013-05 | SQLite 3.7.16 | Memory Mapped I/O |
| 2018-04 | SQLite 3.24 | Window Functions / UPSERT |
| 2020-05 | SQLite 3.32 | Generated Columns |
| 2021-12 | SQLite 3.37 | STRICT モード |
| 2023-11 | SQLite 3.44 | JSON 関数強化 |
| 2024-09 | SQLite 3.46 | -- |
WAL (Write-Ahead Logging)
2010年Linux 3.7 で導入された並行性改善モード:
- 読み込みと書込が同時可能 (旧モードは排他)
- COMMIT 時にロックなし
- Crash Recovery 高速化
- フラッシュドライブ (SSD) 親和性
PRAGMA journal_mode = WAL;
SQLite vs PostgreSQL vs MySQL
| 項目 | SQLite | PostgreSQL | MySQL |
|---|---|---|---|
| 形態 | 組込み | サーバ | サーバ |
| プロセス | アプリ内 | 別プロセス | 別プロセス |
| ネットワーク | なし | TCP/IP | TCP/IP |
| 並行接続 | 限定的 | 数千 | 数千 |
| 容量 | 〜数TB (281TB理論) | 〜PB | 〜PB |
| 用途 | アプリ / IoT / 組込 | エンタープライズ | Web |
| ACID | ◯ | ◯ | ◯ |
| マルチユーザ | △ (基本Reader/Writer) | ◯ | ◯ |
D. Richard Hipp と Hwaci 社
SQLite 開発者:
- 米North Carolina 大学Duke 卒業
- 1992年からSQL 関連業務
- 2000年SQLite 開発開始
- Hwaci 社 (Hipp, Wyrick & Company, Inc.) 設立
- Public Domain 配布で個人が世界DB に貢献する稀有な例
- 商用サポート・コンサルティングで生計
関連用語との違い
- vs PostgreSQL / MySQL: 組込み / サーバ
- vs DuckDB: トランザクション / 分析特化
- vs Realm / LevelDB: KV (Realm/LevelDB) / SQL (SQLite)
FAQ
Q1: SQLite で並行書込? A: WAL モードで読み書き並行可能・書込同士は排他。高並行書込はPostgreSQL 推奨。
Q2: 1ファイルが破損したら? A: Crash Recovery 標準対応・Journal Mode / WAL でほぼ自動復旧。手動修復はsqlite3 .recover コマンド。
Q3: なぜ「世界で最も普及」? A: iOS / Android / Windows / 自動車・航空機・IoT・全Webブラウザ・全Slack・全Adobe アプリに採用、推定1兆台以上の累計デバイスに導入。