gpt4 book ai didi

postgresql - pg_dump 制作一个包含四倍原始数据库的文件

转载 作者:行者123 更新时间:2023-11-29 11:43:32 25 4
gpt4 key购买 nike

我有一个 13GB 大小的数据库。当我用这个命令备份它时:

pg_dump -f out.sql --format=p -b -o -O -x -U postgres mydb

文件 out.sql 有 53GB 大小。它大约是原始数据库大小的 4 倍。为什么会发生这种情况,我该如何解决?

最佳答案

这实际上取决于您保存的数据类型和使用的数据类型,特别是如果您只是将其转储到 sql 文件中。除了压缩,如果您的数据库设计良好,它应该比转储占用更少的空间。

int 数据类型,例如始终使用 4 个字节 - 本段中的每个字母、空格、句号或逗号大小为 1 个字节,但每个数字都保存为 32 位 int 的大小始终为 4 个字节。然而,这允许正 20 亿到负 20 亿的数字范围,即可能有 10 位数字长的数字。换句话说,如果您像此处看到的那样以书面形式转储该信息,那么如果数据库主要是数字,那么任何超过 9999 或低于 -999 的数字实际上都会比保存它的格式“更大”那么这可以解释差异。 (这也意味着 100 及以下或 -10 及以上的数字在书面形式中实际上会“更小”但离题了,总是有 smallint (int2) - 如果你真的很挑剔,我相信有一个 tinyint如果该字节对您意义重大,则进行扩展)。

另一个想法可能是一个 dna 数据库,如果你只有字母 A C G 和 T 表示只有 4 种可能性,那么你可以将每个“字母”保存在仅 2 位信息中 - 因为一个字节有 8 位,那么你可以有效地以四分之一的大小存储所有内容。

无论数据库使用何种形式,无论是数字、二进制文件、日期、 float 、枚举类型......无论如何,如果数据库不是纯文本,那么转储可能会比原始数据大。

关于postgresql - pg_dump 制作一个包含四倍原始数据库的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14921306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com