In-Memory-Datenbank in Python
-
27-09-2019 - |
Frage
Ich mache einige Abfragen in Python in einer großen Datenbank, um einige Statistiken aus der Datenbank herauszuholen. Ich möchte, dass diese Statistiken in Memory sind, damit andere Programme sie ohne Datenbank verwenden können.
Ich dachte darüber nach, wie man sie strukturiert, und nachdem ich versucht hatte, einige komplizierte verschachtelte Wörterbücher einzurichten, wurde mir klar, dass eine gute Darstellung eine SQL -Tabelle sein würde. Ich möchte die Daten jedoch nicht in die persistente Datenbank speichern. Gibt es In-Memory-Implementierungen einer SQL-Datenbank, die die Abfrage der Daten mit der SQL-Syntax unterstützt?
Lösung
SQLite3 könnte funktionieren. Die Python -Schnittstelle Unterstützung Die In-Memory-Implementierung, die die SQLite3 C API bietet.
Aus der Spezifikation:
Sie können auch den speziellen Namen angeben: Speicher: So erstellen Sie eine Datenbank in RAM.
Es ist auch relativ billig bei Transaktionen, je nachdem, was Sie tun. Um loszulegen, nur:
import sqlite3
conn = sqlite3.connect(':memory:')
Sie können dann fortfahren, als hätten Sie eine reguläre Datenbank verwendet.
Abhängig von Ihren Daten - wenn Sie mit Schlüssel/Wert auskommen können (Zeichenfolgen, Hashes, Listen, Sets, sortierten Sets usw.) - Redis Könnte eine weitere Option sein, um zu erkunden (wie Sie bereits erwähnt haben, dass Sie mit anderen Programmen teilen wollten).
Andere Tipps
Sie könnten möglicherweise eine Datenbank wie verwenden Sqlite. Es ist nicht streng genommen im Gedächtnis, aber es ist ziemlich leicht und wäre vollständig von Ihrer Hauptdatenbank getrennt.