阿里云HybridDB for PG实践 - 列存储加字段和默认值
标签
PostgreSQL , Greenplum , 相对偏移 , 列存储 , appendonly , AO表
背景
Greenplum的Append only table支持更新、删除。通过什么支持呢?bitmap文件,标记被删除的行。
因此在更新,删除后,数据可能膨胀。
另一方面,列存储每列一个文件,同一行通过偏移对应起来。例如INT8的两个字段,通过偏移很快能找到某一行的A列对应的B列。
接下来谈谈加字段,在加字段时,AO表示不会REWRITE TABLE的。如果AO表以及有一些垃圾(被删除的数据)记录后,加的字段会使用相对偏移吗(换句话说,需不需要填充已删除的记录),答案是要填充。
例子
1、创建3张AO列存表。
postgres=# create table tbl1 (id int, info text) with (appendo