Est-il nosql plat de fichier de base de données comme sqlite?
Petite Question:
Est-il nosql plat-fichier de base de données disponible comme sqlite?
Explication:
Plat de base de données de fichier peut être ouvert dans les différents processus de lecture, et de garder un processus à écrire. Je pense que son parfait pour la lecture du cache si il n'y a pas une stricte cohérence nécessaire. Dire 1-2 sec en écriture pour le fichier ou le même bloc de mémoire et les lecteurs d'obtenir des données à jour par la suite.
J'ai donc presque choisir d'utiliser sqlite, comme mon python serveur de cache de lecture. Mais il y a encore un problème. Je n'aime pas à réécrire les sql de nouveau dans un autre endroit et de construire une autre copie de mes tableaux de données dans sqlite, tout comme le même que j'ai fait dans PostgreSql laquelle il a utilisé comme base de données principale.
donc, il y a un autre choix?merci!
- Il est UnQLite mais je me demande pourquoi ne pas écrire un NoSQL-type de stockage de document sur le dessus de SQLite. Dans certains cas, schemaless la collection d'objets de stockage est pratique mais n'est-il pas bon de toujours utiliser un bien pris en charge format de fichier standard?
Vous devez vous connecter pour publier un commentaire.
Peut-être
shelve
? En gros, c'est une valeur-clé magasin où vous pouvez stocker des objets python. http://docs.python.org/library/shelve.htmlOu peut-être vous pouvez simplement utiliser le système de fichiers?
shelve
n'est pas une alternative viable à sqlite. À partir du python docs: "en suspens module ne prend pas en charge simultanée accès en lecture/écriture mis de côté les objets. (Multiples et simultanées, les accès en lecture sont en sécurité.) Lorsqu'un programme a une durée de ouvert en écriture, aucun autre programme ne devrait avoir à l'ouvrir pour le lire ou écrire. Unix verrouillage de fichier peut être utilisé pour résoudre ce problème, mais cela diffère selon les versions d'Unix et nécessite des connaissances sur la mise en œuvre de la base de données utilisée." sqlite, d'autre part, est de l'ACIDE compatible avec tous les Systèmes d'exploitation compatibles et ne le verrouillage de travail pour vous.BerkeleyDB est un moyen largement utilisé de base de données intégré qui a été autour pour toujours (à l'origine dérivé de la bibliothèque de bases de données inclus dans BSD, d'où le nom) et a d'excellentes caractéristiques de performance pour de nombreux cas d'utilisation (et la mise en cache est fréquemment utilisé), mais elle comporte des limites importantes.
Si vous voulez l'utiliser avec Python, vous voudrez probablement le de l'extérieur maintenu pybsddb/
bsddb3
de la bibliothèque, pas la obsolètebsddb
de la bibliothèque inclus dans Python 2.x (et non plus en 3.x).Il est actuellement détenue par Oracle, mais disponible sous licence open-source. Prenez soin de noter les conditions de licence -- les versions actuelles sont GPLish (et compatible avec la GPL), alors assurez-vous que c'est compatible avec ce que vous comptez faire.
Plus d'informations:
Quelque chose de banal mais efficace, si vous êtes à la recherche de stockage de clés sauvegardé les données de la valeur de la structure de l'utilisation marinés dictionnaire. Utiliser cPickle pour de meilleures performances en cas de besoin.