2013-01-17 43 views
2

我有一個2Gb的XML文件,我想加載到MySQL中的一個表。如何加速數據加載XML文件到MySQL

記錄/行的數量是〜140,000,但MYSQL中LOAD XML函數的默認行爲似乎偏離了線性時間。

的數據切割成小塊,我得到了以下性能

(每個負載之間刪除的表)都爲:刪除:0跳過:0警告:0

5000行(S)受影響的記錄:5000 4.852秒

萬行(多個)受影響的記錄:10000 20.670秒

15000行(多個)受影響的記錄:15000 80.294秒

20000行受影響記錄:20000 202.474秒

XML格式正確。我試過了: SET FOREIGN_KEY_CHECKS = 0; SET UNIQUE_CHECKS = 0;

我該怎麼做才能在合理的時間內加載它,而不會將其切成十幾塊?

+0

請顯示您用於加載數據的代碼 – Sebas

+0

您在插入數據的表上定義了哪些索引? – eggyal

+0

@Sebas:參見['LOAD XML'](http://dev.mysql.com/doc/refman/5.5/en/load-xml.html)。 – eggyal

回答

1

嘗試刪除加載前的索引,然後重新構建它們。

+0

ALTER TABLE clinical_study drop index id; – user1987800

+0

ALTER TABLE clinical_study drop index id;產生錯誤代碼:1091.不能刪除'id';檢查列/鍵是否存在 – user1987800