相关疑难解决方法(0)

在PostgreSQL中计算和节省空间

我有一个像pg这样的表:

CREATE TABLE t (
    a BIGSERIAL NOT NULL,               -- 8 b
    b SMALLINT,                         -- 2 b
    c SMALLINT,                         -- 2 b
    d REAL,                             -- 4 b
    e REAL,                             -- 4 b
    f REAL,                             -- 4 b
    g INTEGER,                          -- 4 b
    h REAL,                             -- 4 b
    i REAL,                             -- 4 b
    j SMALLINT,                         -- 2 b
    k INTEGER,                          -- 4 b
    l INTEGER,                          -- 4 b
    m REAL,                             -- 4 b
    CONSTRAINT a_pkey PRIMARY KEY (a)
);
Run Code Online (Sandbox Code Playgroud)

以上每行最多可添加50个字节.我的经验是,我需要另外40%到50%的系统开销,甚至没有任何用户创建的索引.所以,每行约75个字节.我将在表中有许多行,可能超过1450亿行,因此该表将推动13-14太字节.我可以使用什么技巧来压缩这个表?我的可能想法如下......

将 …

postgresql storage database-design bigdata

58
推荐指数
4
解决办法
2万
查看次数

可以为空的列占用PostgreSQL中的额外空间吗?

我有一个包含7列的表,其中5列将为null.我将有一个空列int,text,date,boolean,和money数据类型.该表将包含数百万行,其中包含许多空值.我担心空值会占用空间.

另外,你知道Postgres索引空值吗?我想阻止它索引空值.

postgresql indexing null database-design

26
推荐指数
2
解决办法
5439
查看次数

为什么PostgreSQL(timescaledb)会占用更多的存储空间?

我是数据库的新手.最近我开始使用timecaledb,这是PostgreSQL的扩展,所以我猜这也与PostgreSQL有关.

我观察到一种奇怪的行为.我计算了我的表结构,1个时间戳,2个双倍,所以每行总共24个字节.我从csv文件导入(通过psycopg2 copy_from)2,750,182行.我手动计算的大小应该是63MB,但我查询timescaledb,它告诉我的表大小为137MB,指数大小为100MB,总237MB.我期待表格大小应该等于我的计算,但事实并非如此.任何的想法?

database postgresql timescaledb

3
推荐指数
1
解决办法
1102
查看次数