我正在下载一个 900mb 的 XML 文件,客户希望我将其上传到 MySQL 数据库中的单个表中。我不得不在一两周前插入一个 6mb 的文件,我将文件转换为可以在 phpmyadmin 中运行的 SQL 查询,但这需要相当长的时间。
这次我该怎么办?谢谢
我会看看文件是否可以转换为 CSV 格式。由于不处理 XML,因此导入 MySQL 表会快得多。您只需要小心为每列输入的数据类型。
如果客户端无法以 CSV 格式提供给您,并且这是一次性上传,请尝试使用 MS Excel/Libre Calc/OpenOffice Calc 自行转换。
如果每周发生一次,并且 XML 和数据库结构保持不变,请使用 sax 解析器(而不是使用 Dom)生成 SQL 文件并通过 mysql 命令行导入。
mysql -u 用户 -p 数据库名称 < import.SQL
您可以在上传到服务器之前压缩 SQL 文件以更快地获取它
您可以根据需要考虑锁定表以进一步提高性能(如果系统可以处理) http://dev.mysql.com/doc/refman/5.1/en/lock-tables.html