2009-07-25 3 views
1

Ich arbeite mit Datamapper, mit dem Sie entweder einen Pfad zu einer Datenbankdatei auf Ihrem System oder einfach die Zeichenfolge "Speicher" angeben können und dann eine "In-Memory" -Datenbank verwendet wird. Ich habe jedoch keine Ahnung, was das bedeutet.Hat eine In-Memory-Datenbank auch eine Dateisystemkomponente?

Ist eine "In-Memory" -Datenbank rein speicherbasiert oder wird sie irgendwann in das Dateisystem serialisiert?

Was ist der Vorteil einer In-Memory-Datenbank?

Ist es nur für die Effizienz - durch die Beseitigung der Kosten für Dateisystemzugriff?

Antwort

1

Der Grund, warum SQLite In-Memory-Datenbanken hat, ist nicht wirklich für die Leistung. In der Praxis ist es nicht wirklich langsamer, eine Datei zu haben, als das zu überspringen, außer wenn Sie nicht genügend Speicher haben. Es ist hauptsächlich für temporäres Caching oder Testen gedacht. Zum Beispiel könnten Sie eine In-Memory-Datenbank für Ihre Komponententests verwenden, damit Sie nicht auf Produktionsdaten gehen. Oder Sie könnten es als Alternative zu Memcache verwenden, wenn Sie SQL-Funktionalität wünschen. Im Grunde ist es da, also hast du keine Daten persistieren, wenn du nicht musst.

1

Von the SQLite documentation:

Wenn der Dateiname lautet ": memory:", dann ein private, temporäre In-Memory-Datenbank für die Verbindung erstellt wird. Diese In-Memory-Datenbank wird verschwinden, wenn die Datenbankverbindung geschlossen ist.

Übrigens, haben Sie jemals die Datei gefunden, nach der Sie gesucht haben?

+0

Ja, danke, ich habe es zufällig in meinem Stammverzeichnis gefunden. Es ist aus irgendwelchen Gründen in keiner meiner Suchen aufgetaucht. Irgendwie ignorierte Datamapper den Pfad, den ich ihm in meinen Setup-Anweisungen gegeben hatte und warf ihn einfach in das Root-Verzeichnis. Ich glaube, der Pfad, den ich ihm gegeben habe, stammt vom Root des Dateisystems und nicht vom Stammverzeichnis des Projekts. Der Ordner/db/konnte nicht im Stammordner gefunden werden, so dass er einfach im Root gelöscht wurde. Danke für die Tipps. –