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

Php 将大型XML文件从url加载到MySQL,php,mysql,xml,Php,Mysql,Xml,我需要使用PHP将XML数据从外部服务器/url加载到我的MySQL数据库中。 我不需要将XML文件本身保存到任何地方,除非这更容易/更快 问题是,我需要每小时运行一次,因为数据会不断更新,因此我也需要替换数据库中的数据。XML文件通常约为350mb MySQL表中的数据需要是可搜索的——我将知道XML的结构,以便首先创建适合的表 我想这个问题有几个部分: 让整个流程每小时自动运行的最佳方法是什么 从url下载/解析xml(~350mb)的最佳(最快)方式是什么?以我能做到的方式- 将其加载到我

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

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

MySQL表中的数据需要是可搜索的——我将知道XML的结构,以便首先创建适合的表

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

  • 让整个流程每小时自动运行的最佳方法是什么

  • 从url下载/解析xml(~350mb)的最佳(最快)方式是什么?以我能做到的方式-

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

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

    2) 您可以使用多个系统,线性度越高、RAM消耗越少的系统是,如果您决定使用文件或修改后的mySQL,access将打开TCP连接,流式传输较小的包(16KB就可以了),然后将它们流式传输到磁盘或其他连接上

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

    建议: 据我所见,您正在尝试同步或备份来自另一台服务器的数据。如果只有一个文件,那么使用PHP生成一个本地
    .xml
    ,就完成了。如果存在多个本地文件,我仍然建议您制作本地文件,因为您很可能正在处理非结构化数据:它们不适用于mySQL。如果您处理数百个文件,并且需要快速搜索它们,请执行统计信息和更多。。。考虑更改方法并阅读Hadoop。


    MySQL BLOOB或文本列仍然不支持超过65KB的数据,也许你知道另一种技术,但我从来没有听说过,我也不会建议这样做。如果您只是为了使用SQL搜索命令而尝试,那么您选择了错误的路径。

    请查看此堆栈帖子,我认为它可能包含您想要的内容1。cron,2,3加载\u文件加载xml文件: