SQLite 3.54.0 gagne 4 % de vitesse et abandonne Windows XP
SQLite 3.54.0 est environ 4 % plus rapide, ajoute une fonction diskused() qui remplace sqlite3_analyzer, modifie les réglages par défaut du CLI et abandonne Windows XP.
3 min de lecture

En chiffres
- 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 est sorti le 9 octobre 2026, et il est environ 4 % plus rapide que la version précédente. SQLite est le petit moteur de base de données intégré aux téléphones, aux navigateurs et à d'innombrables applications. C'est pourquoi même un gain de vitesse modeste touche un très grand nombre d'appareils. Cette version modifie aussi plusieurs réglages par défaut de l'outil en ligne de commande et abandonne la prise en charge de Windows XP. L'API, la syntaxe SQL et le format de fichier restent rétrocompatibles, note Linux Compatible.
Quel gain de vitesse
Les notes de version donnent deux chiffres :
- Environ 4 % plus rapide que la version précédente
- Environ 7,5 % plus rapide que la version 3.51.0, publiée un an plus tôt
SQLite mesure la vitesse en comptant les cycles CPU pendant l'exécution de son benchmark speedtest1 sous valgrind, sur Linux x64. Les notes de version préviennent que les résultats varient selon la charge de travail, les options de compilation, le processeur, le compilateur et le système d'exploitation.
Une grande partie du gain vient du planificateur de requêtes, la partie qui décide comment exécuter chaque requête :
- Un UPDATE sur une table dotée d'index d'expression ignore désormais l'index lorsque la valeur indexée n'a pas changé.
- Les expressions comme
x OR TRUEetx OR FALSEsont mieux gérées. - DISTINCT est ignoré dans un SELECT placé à droite de IN, où il ne change rien.
- Une UNION avec
LIMIT 1est plus rapide et utilise moins de mémoire.
Nouvelles fonctions et limites
SQLite 3.54.0 ajoute plusieurs nouveaux outils pour les développeurs :
| Ajout | Ce qu'il fait |
|---|---|
diskused() | Une extension optionnelle qui indique l'utilisation du disque ; elle remplace l'outil obsolète sqlite3_analyzer |
%J et %j | Nouvelles conversions de printf() et format() pour les littéraux de chaîne JSON |
sqlite3_result_str() | Une nouvelle interface C |
sqlite3_incomplete() | Une nouvelle interface C |
weekday -N et end of | Nouveaux modificateurs de date et d'heure |
SQLITE_LIMIT_SCHEMA | Une nouvelle catégorie de sqlite3_limit() |
SQLITE_LIMIT_TRIGGER_STEPS | Une nouvelle catégorie de sqlite3_limit() |
SQLite utilise désormais O_TMPFILE pour les fichiers temporaires lorsque le système le permet. ALTER TABLE refuse aussi d'ajouter, de supprimer ou de renommer une colonne nommée ROWID, ROWID ou OID.
Un changement concerne la sécurité. L'autorisateur, un callback qui approuve ou bloque les actions SQL, s'exécute désormais pour les fonctions SQL d'une clause DEFAULT de CREATE TABLE. Il s'exécute à la création de la table et lorsque la valeur par défaut est utilisée, mais pas lorsque le schéma est lu à l'ouverture.
Changements de la ligne de commande
Le shell sqlite3 reçoit plusieurs changements, et certains modifient le comportement par défaut :
- L'invite peut être définie avec les variables d'environnement
SQLITE_PS1etSQLITE_PS2, et l'invite par défaut respecteNO_COLOR. - Les en-têtes de colonnes apparaissent désormais dans les modes en colonnes, même lorsqu'une requête ne renvoie aucune ligne.
.modegagne--rowcount on,--ifmtet--fpfmt, et--titles alwaysdevient la valeur par défaut.- Une ligne contenant seulement
goou/ne termine plus une instruction, sauf si SQLite est compilé avec-DSQLITE_SHELL_LEGACY_COMMAND_TERMINATOR. - La nouvelle commande
.diskusedutilise la fonctiondiskused().
Fin de la prise en charge de Windows XP
SQLite ne prend plus en charge Windows XP ni les versions antérieures, y compris Windows CE. Windows Vista, sorti vers 2007, devient le minimum. Sous Windows, certains verrous internes utilisent désormais les Slim Reader/Writer Locks, une fonction plus récente de Windows. Les applications UWP et WebUI doivent être compilées avec -DSQLITE_UWP=1. Linux, macOS, BSD et les autres systèmes de type Unix ne sont pas concernés.
SQLite n'est pas le seul à réduire la prise en charge des anciennes versions de Windows. Rust 1.100 a cessé de livrer son compilateur pour Windows 32 bits plus tôt ce mois-ci.
Ce que cela signifie pour les développeurs
- Mettez à jour pour la vitesse. Un gain de 4 % en cycles CPU est gratuit pour la plupart des applications. Lancez vos propres benchmarks, car les résultats dépendent de la charge de travail.
- Vérifiez les scripts qui utilisent le CLI. Les en-têtes s'affichent désormais sur les résultats vides, et
goou/ne termine plus une instruction. Les scripts qui analysent la sortie desqlite3peuvent nécessiter une correction. - Remplacez
sqlite3_analyzer. Il est obsolète. Passez les rapports d'utilisation du disque à.diskusedou à la fonctiondiskused(). - Auditez les migrations ALTER TABLE. Toute migration qui touche une colonne nommée ROWID, ROWID ou OID échouera désormais.
- Vérifiez les cibles Windows. Si vous livrez encore pour Windows XP ou Windows CE, restez sur une ancienne version de SQLite ou abandonnez ces systèmes.
- Revoyez les callbacks d'autorisation. Si votre application en utilise un, testez les tables dont les clauses DEFAULT appellent des fonctions SQL.
La plupart des applications peuvent être mises à jour sans risque. Testez d'abord les scripts CLI et les anciennes migrations.
Sources
Articles liés

GDB 18.1 apporte le débogage non-stop sous Windows et abandonne stabs
GDB 18.1, sorti le 25 septembre, apporte le débogage non-stop sous Windows 10+, de nouvelles commandes save et d'environnement, et retire l'ancien format stabs.

Wine 11.18 gère les pilotes noyau, Staging corrige WoW64
Wine 11.18 est sorti le 18 septembre avec 380 commits et 21 corrections. Wine-Staging porte 273 correctifs de plus, dont deux pour les services WoW64.

ReactOS 0.4.16 livre un installateur graphique et une synchro Wine 10
ReactOS 0.4.16 est sorti le 29 août 2026 après environ 18 mois et 2 808 commits. Il ajoute un installateur graphique, un nouveau pilote ATA et une synchronisation avec Wine 10.