1

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。

4

1 回答 1

1

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

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

于 2013-10-07T18:10:53.880 回答