Redshift的文件说:
ALTER TABLE locks the table for reads and writes until the operation completes.
Run Code Online (Sandbox Code Playgroud)
我的问题是:
假设我有一个包含5亿行的表,我想添加一列.这听起来像一个沉重的操作,可以锁定桌子很长一段时间 - 是吗?或者它实际上是一个快速操作,因为Redshift是一个柱状数据库?或者它取决于列是否可为空/具有默认值?
我发现即使对于具有数十亿行的表,添加(和删除)列也是一种非常快速的操作,无论是否存在默认值或只是NULL.
正如你的建议,我相信这是一个柱状数据库的特性,所以表的其余部分不受干扰.它只是为每个节点上的新列创建空(或几乎为空)列块.
我最近在 Redshift 中向大约 65M 行的表中添加了一个默认的整数列,处理时间大约需要一秒钟。这是在 dw2.large(SSD 类型)单节点集群上。
请记住,您只能在表的末尾(右侧)添加一列,如果您想在中间某处插入一列,则必须使用临时表等。
| 归档时间: |
|
| 查看次数: |
3420 次 |
| 最近记录: |