MySQL LOAD XML导入性能

时间:2013-09-26 14:22:00

标签: mysql xml

使用LOAD XML将XML数据导入MySQL表是否是个好主意?在以后的MySQL版本中是否存在问题或显着的性能改进(我使用的是5.5.34)?

我当前的测试使用大约50 MB的XML和简单的空InnoDB表,每个表都有一个索引,表明性能非常差 - 在带有SSD的Core i7笔记本上大约有3到8次写入或每秒8 KB。鉴于性能,导入所有数据(20 mio行)大约需要80天,而目标大约是4到8小时。

SQL代码如下所示:

LOAD XML LOCAL INFILE 'import.xml' 
  REPLACE INTO TABLE assets ROWS IDENTIFIED BY '<asset>';

MySQL服务器在VMware Fusion的CentOS 6.3上运行。所有文件都位于该VM中,因此在导入期间不会访问主机FS。

1 个答案:

答案 0 :(得分:1)

解决方案是使用LOAD DATA INFILE而不是LOAD XML INFILE,这似乎在所有MySQL版本中都存在严重的性能问题。见评论。

这个改变对我来说不是一个大问题,因为我正在使用XSLT来创建输入文件。 XML本来会更简单,更灵活,但XSLT也允许创建纯文本输出(CSV / TSV)。