我想向已包含数十亿行的表添加新列。新列是从现有列导出的。将新列添加到具有数十亿行的列数据库
例如,
new_col1 = old_col1 + old_col2
new_col2 = old_col1/old_col2
我试图做到这一点在下面的方式 - 由一个从表
添加新列
ALTER TABLE table_name
ADD ( column_1 column-definition,
column_2 column-definition,
...
column_n column_definition)
读行之一,填写新列的值。
数据库中没有主键。所以我不能提及一个单独的行。要逐一读取行,我必须做一个select *,这会给一个巨大的结果集(考虑数十亿条记录)。
有没有更好的方法来做到这一点?
您使用的是什么RDBMS? – 2010-07-19 09:29:26
答案似乎集中在切割小块更新'...为什么阻止你做一个'更新'? – pascal 2010-07-19 09:37:14
我没有使用RDBMS。我正在使用基于MYSQL的列数据库(Infinidb)。单次更新的问题是我将得到的巨大记录集(大约100亿条记录),这些记录集不适合RAM。 – Prashant 2010-07-19 09:57:09