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?

È stato utile?

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

Immagino che SQLite3 sarà l'opzione migliore allora.

Se possibile, dai un'occhiata memcached. (Per coppia di valore chiave, illuminazione veloce!)

Aggiornamento 1:

Hsqldb Per SQL simili a tabelle. (nessun supporto Python)

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top