0
使用LOAD XML
將XML數據導入MySQL表是否是個好主意?在以後的MySQL版本(我使用5.5.34)中是否存在問題或顯着的性能改進?MySQL LOAD XML導入性能
我當前的測試運行使用大約50 MB的XML和簡單,空的InnoDB表,每個索引都有一個索引,這表明性能非常差 - 在帶有SSD的Core i7筆記本計算機上,每秒大約寫入8到8 KB。鑑於此性能,大約需要80天時間才能導入所有數據(20萬行),而目標大約需要4到8小時。
的SQL代碼如下所示:
LOAD XML LOCAL INFILE 'import.xml'
REPLACE INTO TABLE assets ROWS IDENTIFIED BY '<asset>';
MySQL服務器在CentOS 6.3在VMware Fusion中運行。所有文件都位於該VM內,因此在導入期間不會訪問主機FS。
嗯,我猜想像CSV這樣的「更簡單」的格式將更容易解析,因此最有可能導入更快。至於你在桌上的索引,你可以放棄這些,只在導入後添加它們嗎?如果您在導入時不需要索引以避免重複或外鍵檢查,那麼這應該會加速一點。 – CBroe
你在你的MySQL配置上做了什麼調整?默認配置實際上非常糟糕。另外,您是否將CSV的相對速度與XML進行了比較,以查看格式是否成問題? – tadman
即使使用更新的MySQL版本並且沒有虛擬機,我的速度也不會超過3次/秒。常規的CSV導入速度非常快:無需任何調整且具有相同表格的情況下,最高可達2500次寫入/秒。我需要索引,因爲我們正在根據主鍵進行替換(你真的可以在沒有PK的情況下使用InnoDB嗎?)。 – lastzero