我的服务器上有4个本地xml文件,我尝试将它们加载到4个Mysql表中,如下所示:
LOAD XML LOCAL INFILE "file1.xml"
REPLACE
INTO TABLE `table1`
CHARACTER SET "utf8"
ROWS IDENTIFIED BY "<item>"
现在出现了奇怪的部分。
完全加载了3个xml文件,但是其中一个xml文件需要永久加载,如果我查看该过程,则会显示“系统锁定”。我想也许它太大了(600MB),但即使把它分成10块并加载它们中的每一块都会得到几乎相同的结果。
这是有问题的xml:
<item id="48121384">
<name><![CDATA[BRIDGESTONE Blizzak Dm-v1 XL 285/50R20 116R]]></name>
<shop_id>2465</shop_id>
<category><![CDATA[362195]]></category>
<price>30.67</price>
<country>uk</country>
<product_id>325937</product_id>
<product_pid>395</product_pid>
<ordering>27</ordering>
<img><![CDATA[]]></img>
<href><![CDATA[http://blah.com/price/48121384/p1317/xml/?t=1392794884&u=238221047]]></href>
<description><![CDATA[]]></description>
</item>
和我试图把它放进去(我尝试过InnoDb和MyIsam - 同样的事情)
field type
id int(11)
name varchar(255)
shop_id int(11)
category int(11)
price varchar(30)
country varchar(30)
product_id int(11)
product_pid int(11)
ordering int(11)
img varchar(255)
href text
description text
答案 0 :(得分:0)
我找到的唯一解决方案是使用CSV而不是XML。 CSV工作得很好,甚至比XML快一点。
答案 1 :(得分:0)
您可以尝试将所有item的子元素放入item-tag中。将它们用作属性。
我不知道它为什么会起作用,但绝对有效。