【问题标题】:Easiest way t convert a large XML file to MySQL将大型 XML 文件转换为 MySQL 的最简单方法
【发布时间】:2016-09-07 02:23:03
【问题描述】:

我有一个 63MB 的 XML 文件,它基本上是一个棋手列表,它看起来像这样:

<playerslist>
   <player>
       <fideid></fideid>
       <name></name>
       <country></country>
       <sex></sex>
       <title></title>
       <rating></rating>
   </player>
   <player>
      ...
   </player>
</playerslist>

我想在网站上使用这些数据并能够对其进行搜索,因此将其作为 mySQL 数据库中的表对我来说是最方便的事情。
那么,将此 XML 文件转换为 mySQL 数据库的最简单方法是什么?

【问题讨论】:

标签: mysql sql xml


【解决方案1】:

使用load-xml 会是这样(考虑到列的名称与标签完全相同)

LOAD XML LOCAL INFILE '/path/to/players.xml'
INTO TABLE players
ROWS IDENTIFIED BY '<player>';

如果标签与列不匹配,还有另一种可能的方法:

LOAD XML INFILE '/path/to/players.xml'
INTO TABLE players (@fide_id, @name, @country, @sex, @title, @rating)
SET fide_id = @fide_id, name = @name, country = @country, sex = @sex, title = @title, rating = @rating
ROWS IDENTIFIED BY '<player>'

【讨论】:

  • 刚刚尝试了第一个,它需要很长时间......也许 XML 太大而无法工作。
  • XML 文件有多大?
  • 63MB,XML 中大约 300 万行
  • 嗯。你让它坐了多久?它是否插入了任何行?你可以做一个SELECT COUNT(*) FROM Table;前后看看。否则,您最好使用 Ruby 之类的东西来消化数据。
猜你喜欢
  • 2011-10-08
  • 1970-01-01
  • 1970-01-01
  • 2017-08-14
  • 1970-01-01
  • 2012-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多