如何将数据Infile加载到多个表中?

如何将数据Infile加载到多个表中?

问题描述:

嗨,我运行python程序,其中即时插入许多新的条目数据库, 这个新的条目分布在多个表。如何将数据Infile加载到多个表中?

将它们加载到数据库中的最快方法是什么? 在现在即时通讯使用这样的事情

LOAD DATA LOCAL INFILE file 
INTO TABLE table 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
(col1, col2, col3, ...) 

但这种方法只适用于一个表,我不觉得这 多次做...

我发现http://forge.mysql.com/worklog/task.php?id=875这一点,但不很 当然,如果它已经实施或没有。

哪种方式?这是一个最好的解决方案还是您更喜欢其他方法?我的目标是 速度,转速和速度不能再等待几分钟,而程序 完成工作

负载数据中插入新的数据进行的跨多个表的心不是被支持(V 5.1)

我不认为LOAD DATA能做到这一点,但为什么进口以后不能复制表?

+0

那些试图写入MySQL表的新数据不是已经在表中...所以复制表不会工作 – nabizan 2010-10-28 13:27:38

我正在做的正是你想要做的如下:

步骤1:创建临时表(保持导入文件的所有字段)

步骤2:LOAD DATA LOCAL INFILE - >到临时表

步骤3:INSERT INTO Table1字段列表)选择TempTable匹配字段列表)...包括JOINS,WHERE和ON PRIMARY KEY UPDATE必要

步骤4:对第二个表插入查询等重复步骤3。

使用这种方法,我目前正在汇入我的每一个22MB的数据文件,并解析出来到多个表(6张桌子,其中包括2审计/变更表)

不知道你的表结构及数据文件结构它很难给你一个更详细的解释,但我希望这可以帮助你开始

+0

在旁注中,this不是1遍解决方案,您将在临时表上为您正在更新的每个表创建1个查询(或更多)。在我的情况下,我为每个表创建了一个表,对于我的审计表,我为每个正在审计的表列创建了一个查询。我的22兆数据文件的处理速度小于15秒,可将30000条记录处理成6个表格(8个插入查询)。我不知道这是否是一个很好的速度,但在我看来,我对这个速度感到非常满意。 – 2011-05-07 16:20:27