SQLite 3.54.0が4%高速に、Windows XPのサポートを終了
SQLite(エスキューライト)3.54.0は約4%速く動作します。sqlite3_analyzerに代わるdiskused()関数を追加し、CLIのデフォルトを変更し、Windows XPのサポートを終了しました。
3 分で読めます

数字で見る
- faster than the previous release, in CPU cycles
- ~4%
- faster than SQLite 3.51.0 a year ago
- ~7.5%
- now the oldest supported Windows version
- Vista
SQLite 3.54.0は2026年10月9日にリリースされ、前のリリースより約4%速く動作します。SQLiteは、スマートフォン、ブラウザー、そして数えきれないほどのアプリに組み込まれている小さなデータベースエンジンです。そのため、わずかな速度の向上でも、非常に多くのデバイスに届きます。今回のリリースでは、コマンドラインツールのいくつかのデフォルトも変わり、Windows XPのサポートも終了します。Linux Compatibleによると、API、SQL構文、ファイル形式は後方互換性を保っています。
どれくらい速くなったのか
リリースノートには、2つの数字が載っています。
- 前のリリースより約4%速い
- 1年前にリリースされたバージョン3.51.0より約7.5%速い
SQLiteは、Linux x64上のvalgrindでspeedtest1ベンチマークを実行し、CPUサイクルを数えることで速度を測っています。リリースノートは、結果がワークロード、ビルドオプション、CPU、コンパイラー、オペレーティングシステムによって異なると注意しています。
向上の多くは、クエリプランナーによるものです。クエリプランナーは、各クエリをどう実行するかを決める部分です。
- 式インデックスを持つテーブルへのUPDATEは、インデックス対象の値が変わっていない場合、そのインデックスをスキップするようになりました。
x OR TRUEやx OR FALSEのような式の扱いが改善されました。- INの右側にあるSELECTでは、DISTINCTが無視されます。そこでは結果に違いが出ないためです。
LIMIT 1付きのUNIONが速くなり、使うメモリも減りました。
新しい関数と制限
SQLite 3.54.0では、開発者向けの新しいツールがいくつか追加されます。
| 追加されたもの | 機能 |
|---|---|
diskused() | ディスク使用量を報告するオプションの拡張機能です。非推奨のsqlite3_analyzerに代わります |
%Jと%j | JSON文字列リテラル用の、printf()とformat()の新しい変換指定 |
sqlite3_result_str() | 新しいCインターフェース |
sqlite3_incomplete() | 新しいCインターフェース |
weekday -Nとend of | 日付と時刻の新しい修飾子 |
SQLITE_LIMIT_SCHEMA | sqlite3_limit()の新しいカテゴリー |
SQLITE_LIMIT_TRIGGER_STEPS | sqlite3_limit()の新しいカテゴリー |
SQLiteは、システムが対応している場合、一時ファイルにO_TMPFILEを使うようになりました。また、ALTER TABLEは、ROWID、ROWID、OIDという名前の列の追加、削除、名前変更を拒否するようになりました。
セキュリティに関係する変更が1つあります。オーソライザーは、SQLの操作を承認またはブロックするコールバックです。これが、CREATE TABLEのDEFAULT句にあるSQL関数に対しても実行されるようになりました。テーブルの作成時とデフォルト値の使用時には実行されますが、データベースを開く際にスキーマが読み込まれるときには実行されません。
コマンドラインの変更
sqlite3シェルにはいくつかの変更があり、その一部はデフォルトの動作を変えます。
- プロンプトは環境変数
SQLITE_PS1とSQLITE_PS2で設定でき、デフォルトのプロンプトはNO_COLORに従います。 - 列形式のモードでは、クエリが行を1つも返さない場合でも列見出しが表示されるようになりました。
.modeに--rowcount on、--ifmt、--fpfmtが加わり、--titles alwaysがデフォルトになりました。goまたは/だけを含む行は、文を終了しなくなりました。ただし、SQLiteを-DSQLITE_SHELL_LEGACY_COMMAND_TERMINATOR付きでビルドした場合は除きます。- 新しい
.diskusedコマンドは、diskused()関数を使います。
Windows XPのサポート終了
SQLiteは、Windows CEを含め、Windows XP以前をサポートしなくなりました。2007年ごろのWindows Vistaが、新たな最低要件です。Windowsでは、一部の内部ロックで、より新しいWindowsの機能であるSlim Reader/Writer Locksが使われるようになりました。UWPとWebUIのアプリは、-DSQLITE_UWP=1付きでビルドする必要があります。Linux、macOS、BSD、その他のUnix系システムは影響を受けません。
古いWindowsのサポートを削っているのは、SQLiteだけではありません。今月初めには、Rust 1.100が32ビットWindows向けのコンパイラーの提供を終了しました。
開発者にとっての意味
- 速度のためにアップグレードすること。 CPUサイクルで4%の向上は、ほとんどのアプリにとって無償で得られます。結果はワークロードによって変わるので、自分でベンチマークを実行してください。
- CLIを使うスクリプトを確認すること。 結果が空でも見出しが表示されるようになり、
goや/は文を終了しなくなりました。sqlite3の出力を解析するスクリプトは、修正が必要になるかもしれません。 sqlite3_analyzerを置き換えること。 これは非推奨です。ディスク使用量のレポートは、.diskusedまたはdiskused()関数に移してください。- ALTER TABLEのマイグレーションを監査すること。 ROWID、ROWID、OIDという名前の列に触れるマイグレーションは、今後失敗します。
- Windowsのターゲットを確認すること。 まだWindows XPやWindows CE向けに出荷しているなら、古いSQLiteを使い続けるか、それらのシステムへの対応をやめてください。
- オーソライザーのコールバックを見直すこと。 アプリで使っている場合は、DEFAULT句がSQL関数を呼び出すテーブルをテストしてください。
ほとんどのアプリは安全にアップグレードできます。まず、CLIのスクリプトと古いマイグレーションをテストしてください。
出典
関連記事

GDB 18.1、Windowsでnon-stopデバッグに対応しstabsを廃止
9月25日公開のGDB 18.1(GNUデバッガー)は、Windows 10以降でのノンストップ・デバッグ、新しいsaveコマンドや環境変数コマンドを追加し、古いstabsデバッグ形式を削除した。

Wine 11.18がカーネルドライバ対応、StagingはWoW64を修正
Wine 11.18は9月18日に公開され、約380件のコミットと21件の不具合修正を含む。Wine-Stagingは273件の追加パッチを持ち、うち2件はWoW64サービス向けである。

ReactOS 0.4.16、グラフィカルインストーラとWine 10同期を搭載
ReactOS 0.4.16が2026年8月29日に登場した。約18か月と2,808件のコミットを経て、グラフィカルインストーラ、新しいATAドライバ、Wine 10への同期が入った。