我想向已包含數十億行的表添加新列。新列是從現有列導出的。將新列添加到具有數十億行的列數據庫
例如,
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