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));上面的加起來相當于每一行50個字節。我的經驗是,我需要另外40%到50%的系統開銷,甚至沒有任何用戶創建的索引以上。所以,每一行大約有75個字節。我將在表中有很多行,可能超過1450億行,所以這個表將推進13-14兆字節。如果有的話,我能用什么技巧來擠這張桌子呢?我下面可能的想法.。轉換real值到integer..如果它們可以存儲為smallint,即每個字段節省2個字節。轉換列b。M變成一個數組。我不需要搜索這些列,但我確實需要能夠一次返回一個列的值。所以,如果我需要列g,我可以這樣做SELECT a, arr[5] FROM t;我會用數組選項節省空間嗎?會有超速罰則嗎?還有其他想法嗎?
PostgreSQL中的空間計算與節省
慕桂英3389331
2019-06-25 14:41:56