Compresser la base de données PostgreSQL

12

J'ai une grande base de données PostgreSQL de plus de 500 Go, ce qui est trop grand. Est-il possible de compresser la base de données à une taille plus gérable? J'ai essayé de le faire avec SquashFS et la base de données compressée à 177 Go, mais PostgreSQL requiert que la base de données dispose d'un accès en écriture et que les systèmes Squashed soient en lecture seule. Les utilisateurs de bases de données plus expérimentés ont-ils des suggestions pour atteindre cet objectif?

La base de données contient des données SIG pour la planète et sera utilisée localement sur un système déployé. Actuellement, il se trouve sur un SSD de 1 To, cependant, j'essaie d'éviter d'insérer un disque dur supplémentaire simplement pour accueillir une grande base de données. La base de données fonctionne comme vous le souhaitez sans problème, je voudrais simplement la compresser à une taille plus facile à gérer et éviter de la placer sur un lecteur séparé.

MH21209
la source
Pourquoi est-il trop grand? Si vous manquez d'espace disque, vous devez ajouter plus de disque au système. S'il y a des données qui ne sont plus nécessaires, vous devriez trouver un moyen de les archiver. Sinon, vous avez probablement un problème de performances qui peut ou non être résolu par une base de données plus petite.
RDFozz
2
La base de données contient des données SIG pour la planète et sera utilisée localement sur un système déployé. Actuellement, il se trouve sur un SSD de 1 To, mais j'essaie d'éviter de gifler un disque dur supplémentaire simplement pour accueillir une grande base de données. La base de données fonctionne comme vous le souhaitez sans problème, je voudrais simplement la compresser à une taille plus facile à gérer et éviter de la placer sur un lecteur séparé.
MH21209
4
C'est une question assez raisonnable. Il ne devrait pas être fermé.
Evan Carroll

Réponses:

10

Système de fichiers

Une méthode très populaire pour ce faire est le système de fichiers. BTRFS et ZFS fonctionnent sous la base de données au niveau du système de fichiers. Les deux peuvent être utilisés dans un périphérique de bouclage afin que vous puissiez fournir un espace de table compressé sans avoir une autre partition. Il y a des mises en garde avec cela, si le tablespace échoue, cela peut aussi prendre votre cluster.

ZFS

ZFS est le grand ici. C'est ce que j'irais.

Voir également

Btrfs

Btrfs est un concurrent sérieux, mais il est en développement actif depuis très longtemps, et le manque de distributions majeures le ramassant par défaut, de nombreuses personnes se demandent s'il est prêt ou non pour "prime time".

PostgreSQL

Méthodes SIG (PostGIS)

  • Pour les polygones, une méthode consiste à simplifier les polygones en supprimant les sommets avec ST_Simplify.

  • Pour les points, une méthode est le regroupement spatial .

Ces deux éléments entraînent une perte d'informations. PostGIS, comme la plupart des fonctionnalités de la base de données, n'a pas d'option transparente de "compression magique".

cstore_fdw

Il existe également cstore_fdwun magasin en colonnes qui propose la compression. Il a un profil de performance différent donc ymmv.

Evan Carroll
la source
2
Ceci est exactement ce que je cherchais. Je redéploie actuellement ma base de données au-dessus de ZFS. Merci.
MH21209