gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 21:57:10 25 4
gpt4 key购买 nike

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

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

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

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

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

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

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

最佳答案

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

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

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

建议:据我所知,您正在尝试从另一台服务器同步或备份数据。如果只有一个文件,则使用 PHP 制作一个本地 .xml 即可完成。如果有多个,我仍然建议创建本地文件,因为很可能您正在处理非结构化数据:它们不适用于 mySQL。如果您使用数百个文件,并且需要快速搜索它们、执行统计等等...请考虑更改方法并阅读有关 hadoop 的内容。

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

关于php - 将大型 XML 文件从 url 加载到 MySQL 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33027520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com