Database in memoria in Python
-
27-09-2019 - |
Domanda
Sto facendo alcune domande in Python su un database di grandi dimensioni per ottenere alcune statistiche dal database. Voglio che queste statistiche siano in memoria in modo che altri programmi possano usarle senza andare in un database.
Stavo pensando a come strutturarli e dopo aver cercato di creare alcuni dizionari nidificati complicati, mi sono reso conto che una buona rappresentazione sarebbe stata una tabella SQL. Tuttavia, non voglio archiviare i dati nel database persistente. Esistono implementazioni in memoria di un database SQL che supporta la query su dati con la sintassi SQL?
Soluzione
SQLite3 potrebbe funzionare. L'interfaccia Python supporta L'implementazione in memoria offre l'API SQLite3 C.
Dalle specifiche:
È inoltre possibile fornire il nome speciale: Memoria: per creare un database in RAM.
È anche relativamente economico con le transazioni, a seconda di ciò che stai facendo. Per andare avanti, solo:
import sqlite3
conn = sqlite3.connect(':memory:')
Puoi quindi procedere come se stessi utilizzando un database normale.
A seconda dei tuoi dati - se riesci a cavarsela con la chiave/valore (stringhe, hash, elenchi, set, set ordinati, ecc.) - Redis Potrebbe essere un'altra opzione da esplorare (come hai detto che volevi condividere con altri programmi).
Altri suggerimenti
Potresti usare un database come Sqlite. Non sta parlando in modo rigoroso in memoria, ma è abbastanza leggero e sarebbe completamente separato dal tuo database principale.