Müssen Sie die gesamte PostgreSQL-Datenbank in den RAM laden
Wie setze ich mein ganzes PostgreSql-Datenbank in den Arbeitsspeicher für einen schnelleren Zugriff?? Ich habe 8GB Arbeitsspeicher und ich möchte zu widmen, 2 GB für die DB. Ich habe gelesen, über das " shared-buffer-Einstellungen, aber es nur caches die am meisten zugegriffen fragment der Datenbank. Ich brauchte eine Lösung, wo die ganze DB in den RAM und alle Lesen würde passieren, von der RAM-DB und jede write-operation würde ersten schreiben in den RAM-DB und dann die DB auf die Festplatte.(einige Sache wie die Standard-fsync = on mit shared buffers in der postgresql-Konfiguration-Einstellungen).
InformationsquelleAutor der Frage Bharath | 2009-01-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich mich gefragt, die gleiche Frage für eine Weile. Einer der Nachteile von PostgreSQL ist, dass es scheint nicht die Unterstützung einer IN-MEMORY-storage-engines als MySQL unterstützt...
Trotzdem lief ich in einem Artikel paar Wochen beschreibt, wie dieses getan werden könnte, obwohl es nur scheint zu funktionieren auf Linux. Ich kann nicht wirklich bezeugen es, denn ich habe nicht selber ausprobiert, aber es scheint Sinn zu machen, da eine PostgreSQL-tablespace ist in der Tat zugewiesen montiert repository.
Jedoch auch mit diesem Ansatz bin ich nicht sicher, Sie könnten setzen Sie Ihre index(s) in den RAM; ich glaube nicht, dass MySQL Kräfte HASH-index verwenden, mit seiner IN-MEMORY-Tabelle für nichts...
Wollte ich auch etwas ähnliches tun um die Leistung zu verbessern, für die ich arbeite auch mit riesigen Datenmengen. Ich bin mit python; Sie haben ein dictionary-Datentypen, die im Grunde die hash-Tabellen der form {key: value} - Paare. Die Verwendung dieser ist sehr effizient und effektiv. Im Grunde, um meine PostgreSQL-Tabelle in den RAM lade ich es in so einem python-Wörterbuch, mit ihm zu arbeiten, und speichern Sie es in die db einmal in eine Weile; es lohnt sich, wenn es gut eingesetzt wird.
Wenn Sie nicht mit python, ich bin ziemlich sicher, dass Ihr ein ähnliches Wörterbuch-mapping-Daten-Struktur in Ihrer Sprache.
Hoffe, das hilft!
InformationsquelleAutor der Antwort Nicholas Leonard
wenn Sie Daten von der id, verwenden Sie memcached - http://www.danga.com/memcached/ + postgresql.
InformationsquelleAutor der Antwort l_39217_l
Vielleicht so etwas wie ein Tangosol Coherence cache wenn Sie mit Java.
InformationsquelleAutor der Antwort duffymo
Nur mit einer 8GB-Datenbank, wenn Sie bereits optimiert die SQL-Aktivität, und Sie bereit sind, es zu lösen-Abfrage Probleme mit der hardware, ich schlage vor, Sie in Schwierigkeiten sind. Dies ist nicht nur eine skalierbare Lösung, die langfristig. Sind Sie sicher, es gibt nichts, was Sie tun können, um wesentliche Unterschiede auf der software-und Datenbank-design-Seite?
InformationsquelleAutor der Antwort dkretz
Set up ein old-fashioned-RAMdisk und sagen, pg zum speichern der Daten gibt.
Werden Sie sicher, dass Sie es wieder gut obwohl.
InformationsquelleAutor der Antwort Marsh Ray