Komprimieren Sie die PostgreSQL-Datenbank


12

Ich habe eine große PostgreSQL-Datenbank mit einer Größe von über 500 GB, die zu groß ist. Gibt es überhaupt eine Möglichkeit, die Datenbank auf eine überschaubare Größe zu komprimieren? Ich habe versucht, dies mit SquashFS und der auf 177 GB komprimierten Datenbank zu tun. PostgreSQL erfordert jedoch, dass die Datenbank Schreibzugriff hat und Squashed-Systeme schreibgeschützt sind. Haben erfahrene Datenbankbenutzer Vorschläge, um dieses Ziel zu erreichen?

Die Datenbank enthält GIS-Daten für den Planeten und wird lokal auf einem bereitgestellten System verwendet. Derzeit befindet es sich auf einer 1-TB-SSD. Ich versuche jedoch zu vermeiden, dass eine zusätzliche Festplatte eingebaut wird, nur um eine große Datenbank aufzunehmen. Die Datenbank funktioniert wie gewünscht ohne Probleme. Ich möchte sie einfach auf eine überschaubare Größe komprimieren und vermeiden, sie auf einem separaten Laufwerk abzulegen.


Warum ist es zu groß? Wenn Ihnen der Speicherplatz ausgeht, müssen Sie dem System mehr Speicher hinzufügen. Wenn Daten nicht mehr benötigt werden, sollten Sie einen Weg finden, sie zu archivieren. Andernfalls haben Sie vermutlich ein Leistungsproblem, das möglicherweise von einer kleineren Datenbank behoben wird oder nicht.
RDFozz

2
Die Datenbank enthält GIS-Daten für den Planeten und wird lokal auf einem bereitgestellten System verwendet. Derzeit befindet es sich auf einer 1-TB-SSD. Ich versuche jedoch zu vermeiden, dass eine zusätzliche Festplatte eingeschlagen wird, nur um eine große Datenbank aufzunehmen. Die Datenbank funktioniert wie gewünscht ohne Probleme. Ich möchte sie einfach auf eine überschaubare Größe komprimieren und vermeiden, sie auf einem separaten Laufwerk abzulegen.
MH21209

4
Dies ist eine ziemlich vernünftige Frage. Es sollte nicht geschlossen werden.
Evan Carroll

Antworten:


10

Dateisystem

Eine sehr beliebte Methode hierfür ist das Dateisystem. BTRFS und ZFS arbeiten unter der Datenbank auf Dateisystemebene. Beide können in einem Loopback-Gerät verwendet werden, sodass Sie einen komprimierten Tabellenbereich ohne eine andere Partition bereitstellen können. Dies hat einige Einschränkungen: Wenn der Tablespace ausfällt, wird möglicherweise auch Ihr Cluster benötigt.

ZFS

ZFS ist hier der Große. Dafür würde ich mich entscheiden.

Siehe auch

Btrfs

Btrfs ist ein starker Konkurrent, aber es befindet sich seit sehr langer Zeit in der aktiven Entwicklung, und das Fehlen wichtiger Distributionen, die es als Standard verwenden, lässt viele Leute fragen, ob es für die "Prime Time" bereit ist oder nicht.

PostgreSQL

GIS-Methoden (PostGIS)

  • Bei Polygonen besteht eine Methode darin, Polygone zu vereinfachen, indem Scheitelpunkte mit gelöscht werden ST_Simplify.

  • Für Punkte ist eine Methode das räumliche Clustering .

Beides führt zu einem Informationsverlust. PostGIS verfügt wie die meisten Funktionen der Datenbank nicht über eine transparente Option für die "magische Komprimierung".

cstore_fdw

Es gibt auch cstore_fdweinen Spaltenspeicher, der Komprimierung bietet. Es hat ein anderes Leistungsprofil, also ymmv.


2
Genau das habe ich gesucht. Ich stelle meine Datenbank derzeit erneut auf ZFS bereit. Danke.
MH21209
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.