SQLite est sous-estimé car les gens l'associent aux prototypes et aux outils locaux.
C'est une erreur.
C'est une base de données sérieuse avec une histoire de fiabilité solide et un modèle opérationnel extrêmement simple.
La clé est de comprendre quel type de charge de travail elle supporte efficacement.
Pourquoi SQLite semble rapide
L'avantage évident est la localité.
Il n'y a pas de serveur de base de données séparé, pas de saut réseau, et pas de pool de connexions entre l'application et le fichier de données. Pour les charges de travail locales à forte lecture, cette simplicité peut être très efficace.
Où elle s'intègre bien
SQLite est souvent une option solide pour :
- applications embarquées
- déploiements en périphérie ou à nœud unique
- outils internes
- charges de travail à forte lecture avec une concurrence d'écriture modeste
C'est un ensemble de systèmes significatif.
Où elle ne s'intègre pas aussi bien
Vous devriez être plus prudent lorsque vous avez besoin de :
- une haute concurrence d'écriture provenant de nombreux processus
- une coordination d'écriture multi-nœuds
- des besoins de réplication opérationnelle complexes dès le départ
- des charges de travail analytiques lourdes sur de nombreux nœuds d'application
C'est généralement là que PostgreSQL ou une autre base de données client-serveur est un meilleur choix.
Le mode WAL compte
Si vous utilisez SQLite en production, comprenez le journal d'écriture anticipé (Write-Ahead Logging) :
- il améliore le comportement de concurrence
- il permet à des lecteurs et des écrivains de mieux coexister
- il change la manière dont le fichier de base de données est géré opérationnellement
C'est une des raisons pour lesquelles SQLite fonctionne beaucoup mieux dans des systèmes réels que de nombreux ingénieurs ne le supposent.
Le résumé honnête
SQLite n'est pas un jouet.
PostgreSQL n'est pas excessif.
Le bon choix dépend de si votre système bénéficie davantage de :
- la simplicité locale et un faible coût opérationnel
ou
- la concurrence client-serveur et une infrastructure de base de données plus riche
C'est la véritable décision.
Lectures complémentaires