向SQL表添加新的值列(大型数据集!)

时间:2017-12-12 07:11:01

标签: sql sqlite

我处理的数据集包含2亿行数据。这是我面临的问题的简化形式。

我当前的SQL(精确的SQLite)表看起来像这样

timestamp  foo
1          251
2          459
3          147

我想添加一个新的列bar,其值为693,589,289(按此顺序)以获取

timestamp  foo  bar
1          251  693
2          459  589
3          147  289

你可以想象使用UPDATE table SET new_value WHERE cond非常慢。

我打开任何解决方案。即使是那些包含数据库重建的人,但当然如果有一个神奇的单行班轮那么做也会很好!

2 个答案:

答案 0 :(得分:0)

插入大数据表通常不会很慢。我想"处理"这种情况需要花费很多时间。

您可以通过尝试具有相同条件的select语句来检查是否是这种情况。

如果条件很慢,您应该优化表格。通常,您应该在每个列上添加索引,并与许多数据集进行比较。

答案 1 :(得分:0)

我正在考虑一个涉及创建新表的解决方案。

让我调用我的原始表'A',我想将它迁移到表'B'(这是A的克隆,但有一个我要插入的额外列)

对于A中的每一行,我只需要附加新的列值并将新创建的行插入到B中。

我正在研究的100GB数据需要一段时间但可能。

相关问题