每日批量加载和更新MySQL DB

时间:2014-10-15 03:11:41

标签: mysql sql database

我正在构建将用于报告的数据库的部分副本。我想在MySQL中构建第二个DB。 MySQL DB将有两个主表。一个表每天需要添加大约100个新行,需要更新大约300个。该表将包含大约20列,大多数~20个字符的文本字段。第二个表每天将有大约1,000个新行,大约有3,000个更新。该表将有大约40个字段,其中大约一半是日期字段,另一个是~10个字符的文本字段。

每天我都会收到一个制表符分隔文件,其中包含已更新的新行和新行。

以下是我考虑进行更新和插入的一些方法。有没有我想要的选项,我应该看看?关于什么是最好的方法的任何建议?

选项1 - 将文件拆分为插入和更新。使用插入上的FILE选项加载它们。构建并运行更新的更新语句。

选项2 - 将整个文件加载到临时表中,然后使用连接来查找和更新行,然后插入新行。

选项3 - 使用ON DUPLICATE KEY UPDATE

在所有内容上构建插入

我对数据的更新和插入将是每天对数据的唯一非读取操作。最终,我希望自动化该过程,以便它在一夜之间运行。

1 个答案:

答案 0 :(得分:1)

这不是每天的大量操作。所有选项都可以正常使用。

选项1或3可能是最简单的,因此最有可能

  • 实施无错误
  • 任何未来的维护者都很容易

如果重要的话,选项3不能直接移植到其他数据库。