【发布时间】:2012-09-15 05:22:09
【问题描述】:
我的基本任务是尽可能快地将单个文件中的部分数据导入到多个不同的表中。
我目前每个表都有一个文件,我设法使用LOAD DATA 语法将每个文件导入到相关表中。
我们的产品收到客户的新要求,他不再有兴趣向我们发送多个文件,而是希望向我们发送包含所有原始记录的单个文件,而不是维护多个此类文件。
我想到了几个建议:
-
我可能会要求客户在文件中的每批行之前写一个原始文件,描述他希望将其加载到的表以及需要导入的前行数。 例如
Table2,500 ... Table3,400然后我可以尝试为每个这样的行块应用
LOAD DATA,从而丢弃表和行号描述。 可行吗? -
我可能要求每条记录都包含表名作为附加属性,然后我需要迭代每条记录并插入它,尽管我确信它比
李>LOAD DATA慢得多。 我还可以使用例如 Java 预处理此文件并在 for 循环中执行
LOAD DATAas 语句。
我可能需要几乎任何我想要的格式更改,但它必须是一个文件并且导入必须快速。 (我不得不说,我所说的表描述是什么意思,它实际上是一个特性的不同名称,我决定所有与这个特性相关的文件都应该保存在不同的表名中——它对客户端是透明的)
听起来最好的解决方案是什么?他们还有其他建议吗?
【问题讨论】:
标签: mysql insert load-data-infile