SQLite 3.54.0 wird rund 4 % schneller und streicht Windows XP
SQLite 3.54.0 läuft rund 4 % schneller, bringt eine Funktion diskused(), die sqlite3_analyzer ersetzt, ändert Standards der CLI und streicht die Unterstützung für Windows XP.
3 Min. Lesezeit

Die Zahlen
- 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 ist am 9. Oktober 2026 erschienen und läuft rund 4 % schneller als die Version davor. SQLite ist die kleine Datenbank-Engine, die in Smartphones, Browsern und unzähligen Apps steckt. Deshalb erreicht schon ein bescheidener Geschwindigkeitsgewinn eine riesige Zahl von Geräten. Diese Version ändert außerdem mehrere Standardeinstellungen im Kommandozeilenwerkzeug und beendet die Unterstützung für Windows XP. API, SQL-Syntax und Dateiformat bleiben abwärtskompatibel, wie Linux Compatible anmerkt.
Wie viel schneller
Die Versionshinweise nennen zwei Werte:
- Rund 4 % schneller als die vorherige Version
- Rund 7,5 % schneller als Version 3.51.0, die ein Jahr zuvor erschien
SQLite misst die Geschwindigkeit, indem es CPU-Zyklen zählt, während sein Benchmark speedtest1 unter valgrind auf Linux x64 läuft. Die Versionshinweise warnen, dass die Ergebnisse je nach Workload, Build-Optionen, CPU, Compiler und Betriebssystem schwanken.
Ein großer Teil des Gewinns stammt vom Query Planner, dem Teil, der entscheidet, wie jede Abfrage ausgeführt wird:
- Ein UPDATE auf einer Tabelle mit Ausdrucksindizes überspringt den Index jetzt, wenn sich der indizierte Wert nicht geändert hat.
- Ausdrücke wie
x OR TRUEundx OR FALSEwerden besser verarbeitet. - DISTINCT wird in einem SELECT auf der rechten Seite von IN ignoriert, wo es keinen Unterschied macht.
- Ein UNION mit
LIMIT 1ist schneller und braucht weniger Speicher.
Neue Funktionen und Limits
SQLite 3.54.0 bringt mehrere neue Werkzeuge für Entwickler:
| Neuerung | Was sie tut |
|---|---|
diskused() | Eine optionale Erweiterung, die die Speicherplatznutzung meldet; sie ersetzt das veraltete sqlite3_analyzer |
%J und %j | Neue Konvertierungen in printf() und format() für JSON-String-Literale |
sqlite3_result_str() | Eine neue C-Schnittstelle |
sqlite3_incomplete() | Eine neue C-Schnittstelle |
weekday -N und end of | Neue Modifikatoren für Datum und Uhrzeit |
SQLITE_LIMIT_SCHEMA | Eine neue Kategorie für sqlite3_limit() |
SQLITE_LIMIT_TRIGGER_STEPS | Eine neue Kategorie für sqlite3_limit() |
SQLite nutzt für temporäre Dateien jetzt O_TMPFILE, wo das System es unterstützt. ALTER TABLE weigert sich außerdem, eine Spalte namens ROWID, ROWID oder OID hinzuzufügen, zu löschen oder umzubenennen.
Es gibt eine sicherheitsrelevante Änderung. Der Authorizer, ein Callback, der SQL-Aktionen genehmigt oder blockiert, läuft jetzt für SQL-Funktionen in einer DEFAULT-Klausel von CREATE TABLE. Er läuft, wenn die Tabelle erstellt wird und wenn der Standardwert verwendet wird, aber nicht, wenn das Schema beim Öffnen gelesen wird.
Änderungen an der Kommandozeile
Die Shell sqlite3 erhält mehrere Änderungen, und einige davon ändern das Standardverhalten:
- Der Prompt lässt sich mit den Umgebungsvariablen
SQLITE_PS1undSQLITE_PS2festlegen, und der Standard-Prompt beachtetNO_COLOR. - Spaltenüberschriften erscheinen in spaltenbasierten Modi jetzt auch dann, wenn eine Abfrage keine Zeilen liefert.
.modeerhält--rowcount on,--ifmtund--fpfmt, und--titles alwaysist jetzt der Standard.- Eine Zeile, die nur
gooder/enthält, beendet keine Anweisung mehr, es sei denn, SQLite wird mit-DSQLITE_SHELL_LEGACY_COMMAND_TERMINATORgebaut. - Der neue Befehl
.diskusednutzt die Funktiondiskused().
Unterstützung für Windows XP endet
SQLite unterstützt Windows XP und ältere Versionen nicht mehr, einschließlich Windows CE. Windows Vista aus der Zeit um 2007 ist jetzt die Mindestanforderung. Unter Windows nutzen einige interne Sperren jetzt Slim Reader/Writer Locks, eine neuere Windows-Funktion. UWP- und WebUI-Apps sollten mit -DSQLITE_UWP=1 gebaut werden. Linux, macOS, BSD und andere Unix-ähnliche Systeme sind nicht betroffen.
SQLite ist nicht allein damit, die Unterstützung für alte Windows-Versionen zu kürzen. Anfang dieses Monats stellte Rust 1.100 die Auslieferung seines Compilers für 32-Bit-Windows ein.
Was das für Entwickler bedeutet
- Aktualisieren Sie wegen der Geschwindigkeit. Einen Gewinn von 4 % bei den CPU-Zyklen gibt es für die meisten Apps umsonst. Führen Sie eigene Benchmarks durch, da die Ergebnisse vom Workload abhängen.
- Prüfen Sie Skripte, die die CLI nutzen. Überschriften werden jetzt auch bei leeren Ergebnissen ausgegeben, und
gooder/beendet keine Anweisung mehr. Skripte, die die Ausgabe vonsqlite3auswerten, brauchen womöglich eine Korrektur. - Ersetzen Sie
sqlite3_analyzer. Es ist veraltet. Verlagern Sie Berichte zur Speicherplatznutzung auf.diskusedoder die Funktiondiskused(). - Prüfen Sie ALTER-TABLE-Migrationen. Jede Migration, die eine Spalte namens ROWID, ROWID oder OID anfasst, schlägt jetzt fehl.
- Prüfen Sie Ihre Windows-Ziele. Wenn Sie noch für Windows XP oder Windows CE ausliefern, bleiben Sie bei einer älteren SQLite-Version oder verzichten Sie auf diese Systeme.
- Überprüfen Sie Authorizer-Callbacks. Wenn Ihre App einen nutzt, testen Sie Tabellen, deren DEFAULT-Klauseln SQL-Funktionen aufrufen.
Die meisten Apps können gefahrlos aktualisieren. Testen Sie zuerst CLI-Skripte und alte Migrationen.
Quellen
Ähnliche Artikel

GDB 18.1 bringt Non-Stop-Debugging unter Windows, streicht stabs
GDB 18.1, erschienen am 25. September, bringt Non-Stop-Debugging auf Windows 10+, neue save- und Umgebungsbefehle und entfernt das alte stabs-Debugformat.

Wine 11.18 bringt Kerneltreiber, Staging repariert WoW64
Wine 11.18 erschien am 18. September mit 380 Commits und 21 Fehlerbehebungen. Wine-Staging trägt 273 zusätzliche Patches, zwei davon für WoW64-Dienste.

ReactOS 0.4.16 bringt einen grafischen Installer und Wine-10-Abgleich
ReactOS 0.4.16 erschien am 29. August 2026 nach rund 18 Monaten und 2.808 Commits. Neu sind ein grafischer Installer, ein neuer ATA-Treiber und der Abgleich mit Wine 10.