Aller au contenu

Performance — Bonnes pratiques#

avancé

  • PRAGMA journal_mode = WAL; — meilleure concurrence lecture/écriture.
  • PRAGMA synchronous = NORMAL; — bon compromis sécurité/vitesse avec WAL.
  • PRAGMA cache_size = -N; — augmente le cache mémoire (en Ko, valeur négative).
  • Grouper les écritures dans des transactions (voir Transactions).
  • Utiliser des requêtes préparées côté application (évite la recompilation SQL).
  • ANALYZE; après un changement significatif de volumétrie pour mettre à jour les statistiques.
  • VACUUM; périodiquement pour défragmenter (coûteux, à planifier hors pic).
  • Préférer EXISTS à COUNT(*) > 0 pour tester une présence.
PRAGMA journal_mode = WAL;
PRAGMA synchronous = NORMAL;
PRAGMA cache_size = -20000;   -- ~20 Mo de cache

ANALYZE;

Diagnostiquer une requête lente#

EXPLAIN QUERY PLAN
SELECT * FROM etudiants WHERE nom = 'Alice';

Rechercher SCAN (parcours complet, potentiellement lent) vs SEARCH (utilisation d'un index).

SQLite

SQLite est mono-fichier et mono-machine : les gains de performance viennent surtout de l'indexation, du mode WAL et de la réduction du nombre de transactions, pas d'un scaling horizontal.