我有一个像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太字节.我可以使用什么技巧来压缩这个表?我的可能想法如下......
将 …
我想在接下来的14天里选择一个周年纪念日.如何根据不包括年份的日期进行选择?我尝试过类似下面的内容.
SELECT * FROM events
WHERE EXTRACT(month FROM "date") = 3
AND EXTRACT(day FROM "date") < EXTRACT(day FROM "date") + 14
Run Code Online (Sandbox Code Playgroud)
这个问题是几个月的换行.
我宁愿做这样的事情,但我不知道如何忽视这一年.
SELECT * FROM events
WHERE (date > '2013-03-01' AND date < '2013-04-01')
Run Code Online (Sandbox Code Playgroud)
我怎样才能在Postgres中完成这种日期数学运算?