Frage

Wie kann ich meine ganze PostgreSql Datenbank in den Arbeitsspeicher für einen schnelleren Zugriff ?? Ich habe 8 GB Speicher und ich möchte 2 GB für die DB widmen. Ich habe über die gemeinsam genutzten Puffer Einstellungen lesen, aber es speichert nur die am meisten zugegriffen Fragment der Datenbank. Ich brauchte eine Lösung, bei der die gesamte DB in den RAM gesetzt wird und jede Lese aus der RAM DB und jede Schreiboperation würde zuerst schreiben in die RAM-DB und dann der DB auf der Festplatte. (Etwas, was wie der Standard-fsync passieren würde = auf mit gemeinsam genutzten Puffer in postgresql Konfigurationseinstellungen).

War es hilfreich?

Lösung

Ich habe mir die gleiche Frage für eine Weile gefragt. Einer der Nachteile von PostgreSQL ist, dass es keine IN MEMORY Speicher-Engines scheint zu unterstützen, wie MySQL funktioniert ...

Wie auch immer ich lief in auf ein Artikel vor einigen Wochen die beschreiben, wie dies geschehen könnte; obwohl es scheint, nur auf Linux zu arbeiten. Ich kann wirklich nicht dafür bürge ich es selbst nicht ausprobiert haben, aber es scheint Sinn zu machen, da eine PostgreSQL Tabelle in der Tat ein bereitgestelltes Repository zugeordnet ist.

Aber auch bei diesem Ansatz, ich bin nicht sicher, ob Sie Ihren Index setzen könnten (n) in dem RAM als auch, Ich glaube nicht, Kräfte HASH Index Verwendung von MySQL mit seiner IN MEMORY Tabelle für nichts ...

Ich wollte auch eine ähnliche Sache zu tun, die Leistung zu verbessern, denn ich auch mit großen Datenmengen arbeiten werde. Ich verwende Python; sie haben Wörterbuch-Datentypen, die im Grunde Hash-Tabellen in der Form sind {key: value} Paaren. diese zu verwenden ist sehr effizient und effektiv. Grundsätzlich meiner PostgreSQL-Tabelle in RAM zu bekommen, lade ich es in eine solche Python-Wörterbuch, mit ihr arbeiten, und bleiben es in db ab und zu; es lohnt sich, wenn es gut verwendet wird.

Wenn Sie nicht mit Python sind, ich bin ziemlich sicher, dass sie eine ähnliche Wörterbuch-Mapping-Datenstruktur in Ihrer Sprache ist.

Hope, das hilft!

Andere Tipps

Wenn Sie ziehen Daten von id, Verwendung Memcached - http://www.danga.com/memcached / + postgresql.

Vielleicht so etwas wie ein Tangosol Coherence Cache , wenn Sie Java verwenden .

Mit nur einer 8 GB-Datenbank, wenn Sie bereits alle SQL-Aktivität optimiert haben und Sie sind bereit Abfrage Probleme mit Hardware lösen, ich schlage vor, Sie sind in Schwierigkeiten. Dies ist nicht nur eine skalierbare Lösung auf lange Sicht. Sind Sie sicher, dass es nichts, was man tun kann, erhebliche Unterschiede auf der Software und Datenbank-Design-Seite zu machen?

Stellen Sie einen altmodischen RAMdisk und sagen pg dort seine Daten zu speichern.

Seien Sie sicher, dass Sie es aber gut sichern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top