我在红移中有两个不同的表,假设 A 和 B 。这两个表都有3列,具有相同的数据类型。
虽然 B 的行数是 A 的3倍,但 A 的大小比 B < / strong>即可。这怎么可能?
A上的行数:6,789,634,116
B上的行数:18,191,553,916
A的大小:491604 mbytes
B的大小:423745兆字节
[编辑]
表创建查询是这样的:
CREATE TABLE A
(
uid varchar(128) NOT NULL,
client_id_1 integer NOT NULL,
client_id_2 integer NOT NULL
);
与表B没有区别。
答案 0 :(得分:1)
在Amazon Redshift中,
UPDATE = DELETE + INSERT。
因此,当你这样做时,你看不到那些DELETED记录,从A中选择SELECT count(*)。 但是DELETED记录占据了硬盘驱动器的空间,因此表A中的尺寸更多。
在桌子A上做真空。你应该看到更小的尺寸。
Vacuum A;
有关详细信息,请参阅Amazon Redshift文档。