2012-05-28 41 views
1

我正在下載一個客戶希望我上傳到MySQL數據庫的單個表中的900mb XML文件。我不得不在一兩週前插入一個6mb的文件,我把這個文件轉換爲一個SQL查詢,我可以在phpmyadmin中運行,但這花了相當長的時間。將巨大的XML文件導入到MySQL

這次我該怎麼辦?謝謝

回答

1

我會看看如果文件可以轉換爲CSV格式。由於沒有對XML進行處理,所以導入到MySQL表中會快得多。您只需要小心輸入每列的數據類型。

如果客戶端無法以CSV格式提供給您,並且這是一次性上傳,請嘗試使用MS Excel/Libre Calc/OpenOffice Calc自行轉換它。

0

如果它是每週發生的事情,並且XML和數據庫結構將保持不變,則使用sax解析器(而不是使用Dom)來生成SQL文件並通過mysql命令行導入。

的mysql -u用戶-p數據庫名< import.SQL

您可以在上傳到服務器之前壓縮SQL文件得到它更快

根據需要,進一步提高你可以考慮鎖定表性能(如果系統可以處理它) http://dev.mysql.com/doc/refman/5.1/en/lock-tables.html