Introduction
L'utilisation d'une base de données est souvent considérée comme une étape nécessaire dans le développement d'une application. Cependant, la question se pose : est-ce vraiment nécessaire ? Une base de données n'est en fin de compte qu'un ensemble de fichiers sur disque. SQLite est un exemple de base de données qui utilise un seul fichier, tandis que PostgreSQL utilise un répertoire de fichiers avec un processus qui les gère.
Contexte Technique
Pour répondre à cette question, nous avons mené une expérience en créant le même serveur HTTP en utilisant trois langages différents (Go, Bun et Rust) et deux stratégies de stockage : lire le fichier à chaque fois et charger les données en mémoire. Les résultats montrent que, pour de petites applications, utiliser ses propres fichiers peut être plus efficace que d'utiliser une base de données.
Les trois langages ont été testés avec trois fichiers plats : users.jsonl, products.jsonl et orders.jsonl, au format JSONL (un enregistrement par ligne, ajouté lors de l'écriture). Deux points de terminaison HTTP ont été utilisés : POST /users pour créer et GET /users/:id pour récupérer par ID.
Analyse et Implications
Les résultats des tests montrent que la lecture du fichier à chaque fois est la méthode la moins efficace, avec une complexité de O(n), ce qui signifie que le temps de lecture augmente linéairement avec la taille du fichier. La méthode de chargement des données en mémoire est plus efficace, avec une complexité de O(1), mais elle nécessite plus de mémoire. La méthode de recherche binaire sur disque offre un compromis, avec une complexité de O(log n), ce qui signifie que le temps de lecture augmente logarithmiquement avec la taille du fichier.
Les résultats montrent également que SQLite, une base de données légère, est battue par la méthode de recherche binaire sur disque, et que la méthode de chargement des données en mémoire est la plus rapide. Cependant, il est important de noter que ces résultats dépendent du cas d'utilisation et de la taille de la base de données.
Perspective
En fin de compte, la décision d'utiliser une base de données ou non dépend de la taille de l'application et de la quantité de données à stocker. Pour de petites applications, utiliser ses propres fichiers peut être plus efficace, mais pour des applications plus grandes, une base de données peut être nécessaire pour gérer les données de manière efficace. Il est important de considérer les besoins spécifiques de l'application et de choisir la solution qui convient le mieux.