使用LOAD XML将MySQL数据导入MySQL表是个好主意吗?在后来的MySQL版本(我使用的是5.5.34)中,是否存在已知的问题或显着的性能改进?
我目前的测试使用了大约50 MB的XML和简单的空InnoDB表,每个表都有一个索引,这表明性能非常糟糕--在带有SSD的Core笔记本上,大约每秒写3到8次或8KB。考虑到这种性能,导入我的所有数据(20兆行)大约需要80天,而目标是4至8小时。
SQL代码如下所示:
LOAD XML LOCAL INFILE 'import.xml'
REPLACE INTO TABLE assets ROWS IDENTIFIED BY '<asset>';MySQL服务器运行在VMware融合中的CentOS 6.3上。所有文件都位于该VM中,因此在导入期间不会访问主机FS。
发布于 2013-10-07 18:10:53
解决方案是使用LOAD DATA INFILE而不是LOAD XML,因为在所有MySQL版本中似乎都存在严重的性能问题。见评论。
这个更改对我来说不是什么大问题,因为我正在使用XSLT创建输入文件。XML本来会更容易、更灵活,但是XSLT也允许创建纯文本输出(CSV/TSV)。
https://stackoverflow.com/questions/19030874
复制相似问题