base de données en mémoire en Python

je fais quelques requêtes en Python sur une grande base de données pour obtenir quelques statistiques de la base de données. Je veux que ces statistiques soient en mémoire pour que d'autres programmes puissent les utiliser sans aller dans une base de données.

je pensais à la façon de les structurer, et après avoir essayé de mettre en place quelques dictionnaires emboîtés compliqués, j'ai réalisé qu'une bonne représentation serait une table SQL. Je ne veux pas stocker les données dans la base de données persistante. Sont-il en mémoire implémentations D'une base de données SQL qui prend en charge l'interrogation des données avec la syntaxe SQL?

19
demandé sur Claudiu 2010-06-15 21:13:56

3 réponses

SQLite3 pourrait fonctionner. L'interface Python supporte l'implémentation en mémoire que L'API SQLite3 C offre.

De la spec:

Vous pouvez également fournir le nom spécial : memory: pour créer une base de données en RAM.

il est également relativement bon marché avec des transactions, selon ce que vous faites. Pour y aller, il suffit de:

import sqlite3
conn = sqlite3.connect(':memory:')

vous pouvez alors procéder comme si vous utilisiez une base de données régulière.

en fonction de vos données - si vous pouvez passer avec la clé/valeur (chaînes, hachures, listes, ensembles, ensembles triés, etc) - Redis pourrait être une autre option à explorer (comme vous avez mentionné que vous vouliez partager avec d'autres programmes).

33
répondu Tim Post 2014-03-07 15:18:32

je suppose que SQLite3 sera la meilleure option alors.

si possible, regardez memcached . (pour la paire clé-valeur, l'éclairage rapide!)

mise à JOUR 1:

HSQLDB for SQL Like tables. (pas de support python)

1
répondu zengr 2010-06-15 17:24:05

vous pouvez éventuellement utiliser une base de données comme SQLite . Ce n'est pas strictement parler en mémoire, mais c'est assez léger et serait complètement séparé de votre base de données principale.

0
répondu Matthew Vines 2010-06-15 17:19:53