PHP+MYSQL 服务器配置
我正在使用 PHP 解析 XML 文件并将行插入 MYSQL 数据库中。
我使用 PHP simplexml_load_files 加载 XML,并使用 foreach 循环遍历数组并将行插入到我的数据库中。
对于我正在测试的小文件来说,它工作得非常好,但实际上我需要解析一个 500mb 的大 XML 文件,但什么也没发生。
我想知道对于这种情况正确的 Php.ini 配置是什么?
我有一个 VPS Linux Cent 操作系统,有 256 MB 专用内存和 MYSQL 5.0.5。我还设置了 php memory_limit = 256M (我的服务器的最大值)
I am parsing an XML file with PHP and inserting the rows in a MYSQL database.
I am using PHP simplexml_load_files to load the XML and a foreach to loop through the array and insert the rows into my database.
It works perfectly fine with small files i am testing, but it comes to reality I need to parse a large 500mb XML file and nothing happens.
I was wondering what was the right Php.ini config for this case ?
I have a VPS Linux Cent OS, with 256 mb of dedicated Memory and MYSQL 5.0.5. I have also set php memory_limit = 256M (maximum of my server)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
天哪,一个 500 MB 的 XML 文件?我猜你的内存不足了。尝试XMLReader,这是一个拉式解析器(按行解析XML(或多或少)),这样你就不会'内存不会那么容易耗尽。
gosh, a 500 MB XML file? I guess you run out of memory. try XMLReader, that’s a pull parser (parsing the XML (more or less) linewise), so that you don’t run out of memory so easily.
我建议你使用 xmlreader ...它更有效,因为内存是担心的
I suggest you use xmlreader ... its more efective as memory is concerned
用于 xml 的内存配置位于第三方库中,而不是位于 php.ini 配置中。
除此之外,您应该使用 XMLReader 或 ext/xml 来处理如此大的文件,这意味着流式访问而不是使用 dom 数据访问(SimpleXML)。
The memory config used for xml is located in a third party library, not at php.ini config.
Besides that you should XMLReader or ext/xml to process such a large file, that means streaming access and not use dom data access (SimpleXML).