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.
quelle
Antworten:
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_fdw
einen Spaltenspeicher, der Komprimierung bietet. Es hat ein anderes Leistungsprofil, also ymmv.quelle