通过SQL命令更新大型数据集

时间:2014-06-26 14:18:05

标签: c# mysql sql

我目前正在使用一个导入文件,其中包含460,000行数据。每行由ID和数量组成(例如" 1,120")。从文件中读取该信息,然后应该用于更新数据库中的每个单独的行(例如,UPDATE item SET quantity = QTY WHERE id = 1)。

但是,我遇到的问题实际上是能够有效地运行查询。如果我为每一行运行一个单独的查询,那么它真的不会起作用(因为我已经找到了困难的方法)。

我不是一个SQL用户,而且我目前正在学习,但从我所看到的情况来看,网络似乎没有任何有用的结果。

我想知道是否有人有更新这么大的数据集的经验,如果有的话,他们愿意分享他们用来实现这个目标的方法吗?

2 个答案:

答案 0 :(得分:2)

  • 460000行是一个小数据集。真的很小。

  • 批量插入到临时表中,然后使用更新命令在一次运行中对原始数据运行更新。

答案 1 :(得分:2)

460k行并不是很多,所以你应该没问题。

我建议将整个数据集导入临时表或表变量。要使解决方案正常工作,首先要创建一个实际的物理表,当您开始工作时,可以使用DROP或TRUNCATE。

创建表格,然后将所有数据导入其中。然后,根据此导入表的连接更新表。

适当时丢弃导入表。一旦这完成所有工作,您可以使用存储过程完成整个过程,并使用临时表来处理导入的数据。