压缩 PostgreSQL 数据库

MH2*_*209 14 postgresql compression

我有一个超过 500GB 的大型 PostgreSQL 数据库,它太大了。有没有办法将数据库压缩到更易于管理的大小?我曾尝试使用 SquashFS 执行此操作,并且将数据库压缩到 177GB,但是 PostgreSQL 要求数据库具有写入权限并且 Squashed 系统是只读的。更有经验的数据库用户对实现这个目标有什么建议吗?

该数据库保存地球的 GIS 数据,并将在已部署的系统上本地使用。目前它位于 1TB SSD 上,但是,我试图避免仅仅为了容纳大型数据库而插入额外的硬盘驱动器。数据库按预期执行,没有问题,我只是想将其压缩到更易于管理的大小,并避免将其放在单独的驱动器上。

Eva*_*oll 11

文件系统

一种非常流行的方法是使用文件系统。BTRFS 和 ZFS 在文件系统级别的数据库下工作。两者都可以在环回设备中使用,因此您可以在没有其他分区的情况下提供压缩表空间。对此有一些警告,如果表空间失败,它可能也会占用您的集群。

ZFS

ZFS 是这里最大的一个。这就是我想要的。

也可以看看

Btrfs

Btrfs 是一个强有力的竞争者,但它已经积极开发了很长时间,而且缺乏将其作为默认设置的主要发行版,这让很多人质疑它是否已准备好迎接“黄金时间”。

PostgreSQL

GIS 方法 (PostGIS)

  • 对于多边形,一种方法是通过删除带有 的顶点来简化多边形ST_Simplify

  • 对于点,一种方法是空间聚类

这两者都会导致信息丢失。PostGIS 与数据库的大多数功能一样,没有透明的“魔术压缩”选项。

cstore_fdw

还有cstore_fdw一个提供压缩的柱状存储。它具有不同的性能配置文件,所以 ymmv。

  • 这正是我正在寻找的。我目前正在 ZFS 上重新部署我的数据库。谢谢你。 (3认同)