SQLite pour les grands ensembles de données?
J'ai une assez vaste ensemble de données et souhaitez l'enregistrer dans un fichier plutôt qu'un SGBDR.
La table principale dans le jeu de données est un peu plus de 1M de lignes, de 30 colonnes et environ 600 mo en taille d'un fichier CSV.
Je suis en train d'étudier SQLite. Est SQLite mérite d'être étudié pour les ensembles de données de cette taille?
Vous devez vous connecter pour publier un commentaire.
SQLite va gérer ce fichier juste fine; assurez-vous d'importer les enregistrements dans une transaction, afin de ne pas passer beaucoup de temps à la création d'index, jusqu'à ce que tout est importé.
J'ai étudié SQLite récemment pour une application similaire. L'SQLite documentation indique que les bases de données SQLite peut être téraoctets, et que la principale limitation de SQLite est de la concurrence (de nombreux utilisateurs en même temps). Bien que nous n'avons pas aller dans cette direction (nous avons notre propre binaire format de stockage), j'étais assez confiant que SQLite peut gérer des fichiers de cette taille.
sqlite est rapide lorsque vous utilisez les transactions et ne s'engagent pas trop souvent. En utilisant des requêtes préparées avec des paramètres de la vitesse, trop. Sqlite n'a pas à l'analyse de chaque instruction sql lorsque vous utilisez des requêtes paramétrées. Un exemple: Comment puis-je contourner le "problème" dans sqlite et c#?
- Je stocker 2 go de dans une db sqlite, il fonctionne très bien. Un gros avantage de sqlite au-dessus d'un fichier plat est la possibilité d'indexer vos données.
Vous avez déjà votre réponse, mais j'aimerais partager mon expérience: j'ai déversé des milliards d'enregistrements vaut 793 GiB de données dans une base de données SQLite et les requêtes de lecture sont encore étonnamment rapide (moins de 1m).
Moment de la création a eu peu plus de 22 heures et après la création de l'index prend environ 4 heures par colonne.
sqlite devrait fonctionner correctement pour vous. J'ai couru un ensemble de données de cette taille, même dans un dispositif intégré et sqlite performance est tout à fait raisonnable.
Comme l'a déclaré le principal goulet d'étranglement est la simultanéité. L'objectif de la conception de votre système de sorte qu'il y a au plus une base de données poignée ouverts par fichier de base de données.