Mise à jour 2020 environ 11 ans après que la question ait été postée, puis fermée, ce qui empêche les réponses plus récentes.
Presque tout ce qui est écrit ici est obsolète. Il fut un temps où sqlite était limité à la capacité de la mémoire ou à 2 Go de stockage (32 bits) ou d'autres chiffres populaires... enfin, c'était il y a longtemps.
Les limitations officielles sont énumérées ici . En pratique, sqlite est susceptible de fonctionner tant qu'il y a du stockage disponible. . Il fonctionne bien avec des ensembles de données plus grands que la mémoire, il a été créé à l'origine lorsque la mémoire était mince et c'était un point très important dès le départ.
Il n'y a absolument aucun problème à stocker 100 Go de données. Il pourrait probablement stocker 1 To sans problème, mais c'est à ce moment-là que vous devez vous demander si SQLite est le meilleur outil pour ce travail et vous voulez probablement les fonctionnalités d'une base de données à part entière (clients distants, écritures simultanées, répliques en lecture seule, sharding, etc...).
Original :
Je sais que sqlite ne fonctionne pas bien avec des fichiers de base de données extrêmement volumineux, même s'ils sont pris en charge (il y avait un commentaire sur le site web de sqlite indiquant que si vous avez besoin de fichiers de plus de 1 Go, vous devriez envisager d'utiliser un rdbms d'entreprise. Je ne le trouve plus, cela peut être lié à une ancienne version de sqlite).
Cependant, pour mes besoins, j'aimerais me faire une idée de la gravité de la situation avant d'envisager d'autres solutions.
Je parle de fichiers de données sqlite de l'ordre de plusieurs gigaoctets, à partir de 2 Go. Quelqu'un a-t-il de l'expérience dans ce domaine ? Des conseils/idées ?
1 votes
L'utilisation du threading (connexion par thread) ne peut être utile que pour la lecture. stackoverflow.com/a/24029046/743263
2 votes
Accrochage softwareengineering.stackexchange.com/q/332069/24257 et wiki.mozilla.org/Performance/
33 votes
Année 2016 : J'ai une base de données de 5 Go qui fonctionne sur SQLite sans problème. J'ai installé exactement le même jeu de données sur Postgres. SQLite a exécuté une requête complexe en 2,7 ms, Postgres en 2,5 ms. J'ai fini par choisir Postgres pour l'accès plus facile à Regex et les meilleures fonctionnalités d'index. Mais j'ai été impressionné par SQLite et j'aurais pu l'utiliser aussi bien.
6 votes
2020 : J'ai mis à jour la question. Tout ici a grand besoin d'une mise à jour après 11 ans de fermeture, bloquant les réponses et les modifications. Modifier la question elle-même pourrait ne pas suivre les règles de stackoverflow mais c'est mieux ainsi que de laisser des informations périmées pour tromper la prochaine génération de développeurs.
0 votes
@Paulb Vous souvenez-vous approximativement des spécifications matérielles de la machine que vous utilisiez ? Merci.
1 votes
C'était un i7 avec 16 MB de ram.