感谢您的帮助。
我的规格:
我的环境:
我目前的解决方案:
我正在使用Symfony Serializer组件来读取我的文件,然后处理我的文件并输出文件。一切都在记忆中。操作大约需要20分钟才能完成。
我从Symfony命令运行脚本。我有一个服务来读取文件和服务来导出文件。
改进的解决方案1:
优势: -SQL居中 - 没有记忆问题
Disavantage: 处理期间的-DB操作可能很昂贵
改进的解决方案2:
高级:没有内存问题 否认:可能需要很多时间。
改进的解决方案3:
您会使用什么解决方案?或者你有更好的解决方案吗?
答案 0 :(得分:0)
解决方案2,没有数据库。从csv读取,处理并输出到csv,就像评论中提到的人一样,使用fgetcsv()
和fputcsv()
。逐行进行应该几乎不消耗任何内存,它将消除对数据库的需求。这些类型的操作的问题是将csv文件作为流读取的顺序性质,最终过程的速度将归结为读取和写入操作之间的数据操作的速度。在中间使用数据库只会减慢整个过程,并且有点浪费。