1

我只是想知道在 PHP 中哪个被认为更有效。

我需要遍历 MySQL 结果并将其输出到使用特定格式的文件,我很想知道创建一个巨大的字符串(我将经历超过 100,000 行)并将字符串写入到一个文件,还是写(附加)我想使用 fwrite 添加到文件中的内容,因为我正在查看结果?

从一开始,我相信使用很长的字符串会比继续写入文件更有效,但我想知道 PHP 在处理很长的字符串时是否会遇到任何问题?

谢谢。

4

2 回答 2

3

PHP 创建一个很长的字符串不会有问题,但是它会使用大量内存。只要您有足够的可用内存,那么这将不是问题。从内存读取和写入比写入磁盘要快得多,因此尽管使用 100,000 行,您可以将其拆分并获得两全其美的优势。

我的意思是每 10,000 行将您的字符串附加到文件中,然后清空该字符串,这样,您只需写入文件 10 次并将少量数据存储在内存中。

于 2013-01-25T11:54:01.773 回答
1

如果您创建一个大字符串,请尝试将所有值收集到一个数组中并在写入之前将其连接在一起。字符串是不可变的,如果您只是将值附加到字符串,这将导致性能不佳。

最好的解决方案是收集例如 1000 个结果,将此部分写入文件,再收集 1000 个结果等等。

于 2013-01-25T11:53:56.523 回答