将大型XML文件从url加载到MySQL

时间:2015-10-08 23:20:40

标签: php mysql xml

我需要使用PHP将XML数据从外部服务器/ url加载到我的MySQL数据库中。 我不需要将XML文件本身保存在任何地方,除非这更容易/更快。

问题是,我需要每小时运行一次,因为数据会不断更新,因此我也需要替换数据库中的数据。 XML文件通常约为350mb。

MySQL表中的数据需要可搜索 - 我将知道XML的结构,因此可以创建适合的表。

我想这个问题有几个部分:

  1. 自动化整个过程每小时运行的最佳方法是什么?

  2. 从网址下载/解析xml(~350mb)的最佳(最快?)方式是什么?以某种方式 -

  3. 将其加载到我自己的mysql表中,维护列/结构

1 个答案:

答案 0 :(得分:0)

1)PHP脚本可以一直在后台运行,但这不是最佳方案,或者您可以使用cronos设置php -q /dir/to/php.php(如果在linux上运行)或其他技术让服务器帮助您。 (您仍然需要访问服务器)

2)您可以使用多个系统,线性更多,占用RAM更少,如果您决定使用文件或使用修改后的mySQL访问权限打开您的TCP连接,则流式传输较小的包(16KB即可)将它们在磁盘或其他连接上流出。

3)移动如此庞大的数据并不困难,但将它们存储在mySQL中并不浪费。在其中执行搜索甚至是最糟糕的。更新它正试图杀死mySQL系统。

建议: 从我所看到的,您正在尝试同步或备份来自其他服务器的数据。如果只有一个文件,那么使用PHP创建一个本地.xml,你就完成了。如果有多个,我仍然会建议制作本地文件,因为很可能你正在使用非结构化数据:它们不适用于mySQL。如果您使用数百个文件并且需要快速搜索它们,请执行统计信息以及更多...考虑更改方法并阅读有关hadoop的内容。

MySQL BLOOB或TEXT列仍然不支持超过65KB,也许你知道另一种技术,但我从未听说过它,我永远不会建议这样做。如果您只是尝试使用SQL SEARCH命令,那么您选择了错误的路径。