2010-10-28 55 views
2

嗨,我運行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這一點,但不很 當然,如果它已經實施或沒有。

哪種方式?這是一個最好的解決方案還是您更喜歡其他方法?我的目標是 速度,轉速和速度不能再等待幾分鐘,而程序 完成工作

回答

2

負載數據中插入新的數據進行的跨多個表的心不是被支持(V 5.1)

2

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

步驟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

相關問題