Aller au contenu

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.

Par Tech AI Wire Team

3 min de lecture

XLinkedIn
Capture d'écran de la page du journal des versions SQLite Release 3.54.0 On 2026-10-09, qui liste les améliorations du CLI.

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 TRUE et x OR FALSE sont mieux gérées.
  • DISTINCT est ignoré dans un SELECT placé à droite de IN, où il ne change rien.
  • Une UNION avec LIMIT 1 est plus rapide et utilise moins de mémoire.

Nouvelles fonctions et limites

SQLite 3.54.0 ajoute plusieurs nouveaux outils pour les développeurs :

AjoutCe qu'il fait
diskused()Une extension optionnelle qui indique l'utilisation du disque ; elle remplace l'outil obsolète sqlite3_analyzer
%J et %jNouvelles 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 ofNouveaux modificateurs de date et d'heure
SQLITE_LIMIT_SCHEMAUne nouvelle catégorie de sqlite3_limit()
SQLITE_LIMIT_TRIGGER_STEPSUne 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_PS1 et SQLITE_PS2, et l'invite par défaut respecte NO_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.
  • .mode gagne --rowcount on, --ifmt et --fpfmt, et --titles always devient la valeur par défaut.
  • Une ligne contenant seulement go ou / ne termine plus une instruction, sauf si SQLite est compilé avec -DSQLITE_SHELL_LEGACY_COMMAND_TERMINATOR.
  • La nouvelle commande .diskused utilise la fonction diskused().

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 go ou / ne termine plus une instruction. Les scripts qui analysent la sortie de sqlite3 peuvent nécessiter une correction.
  • Remplacez sqlite3_analyzer. Il est obsolète. Passez les rapports d'utilisation du disque à .diskused ou à la fonction diskused().
  • 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

  1. SQLite Release 3.54.0 On 2026-10-09 - SQLite
  2. SQLite 3.54.0 Release: Faster Engine, New CLI Features, and Dropped Windows XP Support - Linux Compatible

Articles liés