Janning Asked: 2021-10-26 08:04:38 +0800 CST2021-10-26 08:04:38 +0800 CST 2021-10-26 08:04:38 +0800 CST Postgresql 13 - 将 pg_dump 加速到 5 分钟而不是 70 分钟 772 我们每晚使用 pg_dump 来制作我们数据库的快照。我们用一个简单的命令做了很长时间 pg_dump -Fc database_name 这大约需要一个小时并生成一个 30+GByte 的文件。 我们怎样才能加快速度? postgresql pg-dump 1 个回答 Voted Best Answer Janning 2021-10-26T08:04:38+08:002021-10-26T08:04:38+08:00 bytea我们最大的表以列的形式包含原始图像数据。 当我们从这个表上的 psql 执行一个简单的 COPY 到 时stdout,它非常快(1 或 2 分钟),但是使用 pg_dump 非常慢。花了大约 60 分钟。 所以调查这个我偶然发现了这个讨论。如果数据已经像字节茶格式的图像数据一样被压缩,那么 pg_dump 压缩会相当慢。最好在 pg_dump (-Z0) 之外进行压缩。 此外,我们发现我们可以利用我们的多核 CPU(-j10 和 pigz)。所以现在我们这样做: $ pg_dump -Z0 -j 10 -Fd database_name -f dumpdir $ tar -cf - dumpdir | pigz > dumpdir.tar.gz $ rm dumpdir 时间已从约 70 分钟降至约 5 分钟。相当惊人。 您可以像这样恢复它: $ pigz -dc dumpdir.tar.gz | tar -C dumpdir --strip-components 1 -xf - $ pg_restore -j 10 -Fd -O -d database_name dumpdir
bytea
我们最大的表以列的形式包含原始图像数据。当我们从这个表上的 psql 执行一个简单的 COPY 到 时
stdout
,它非常快(1 或 2 分钟),但是使用 pg_dump 非常慢。花了大约 60 分钟。所以调查这个我偶然发现了这个讨论。如果数据已经像字节茶格式的图像数据一样被压缩,那么 pg_dump 压缩会相当慢。最好在 pg_dump (-Z0) 之外进行压缩。
此外,我们发现我们可以利用我们的多核 CPU(-j10 和 pigz)。所以现在我们这样做:
时间已从约 70 分钟降至约 5 分钟。相当惊人。
您可以像这样恢复它: