it-swarm.com.de

Komprimieren Sie die PostgreSQL-Datenbank

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 nur für eine große Datenbank verwendet wird. 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.

12
MH21209

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)

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_fdw Dies ist ein Spaltenspeicher, der Komprimierung bietet. Es hat ein anderes Leistungsprofil, also ymmv.

10
Evan Carroll