搜尋

首頁  >  問答  >  主體

PHP 100W+的数据写入一个XML文件,如何做能提高效率?

问题场景:
公司有100W+的数据要提交给第三方平台,第三方平台要求使用XML的文件格式(上传时可以压缩成gz格式),但也要求把所有的数据写入一个XML文件,不可以分割;
我的做法是将数据写入到$dom对象里,最后统一 $dom->save($xmlFile); 这种方式占用内存太大,而且100W+的产品写入操作完成需要很长的时间。

我想请问一下各位大拿,有没有更好的建议,可以减少内存占用,以及缩短Job执行时间的方法呢?
非常感谢~~~

PHPzPHPz2895 天前871

全部回覆(11)我來回復

  • 怪我咯

    怪我咯2017-04-10 15:29:07

    这个需求中,写入一个XML文件并不是必须的。

    值得考虑用流水线式的模型解决问题。上传数据不需要非得等XML全生成完了才开始,而是只需生成一点XML就上传一点。

    gzip也是一个纯粹流式的压缩(进来一点就出去一点),所以gzip也可以简单插入到这个操作流之中。


    无论如何提交,100W都很考验网络连接的质量和对方API平台的处理能力,请首先尽可能找到分批提交的办法。

    回覆
    0
  • 取消回覆