速度:MySQL与文件输出

时间:2011-02-25 23:45:25

标签: php mysql file-io performance

我有一个php脚本,每次执行大约1个小时,在运行期间,它需要存储一系列稳定的评论,关于它为我以后要查看的内容。基本上,每个评论包括时间戳和简短描述,例如“2/25/2010 6:40:29 PM:更新项目255的价格”。

那么哪个更快,将其输出到.txt文件,或将其插入MySQL数据库?另外,我应该使用PHP的date()中的时间戳,还是应该在MySQL中创建时间对象?

我的问题的第二部分是,由于程序将运行大约一个小时,我应该连接到MySQL,插入数据,并在每次记录评论时关闭与MySQL数据库的连接,或者我应该只是连接一次,插入程序运行时的数据,然后在程序退出时关闭连接,创建初始连接后大约一个小时?

提前感谢您的所有建议。

3 个答案:

答案 0 :(得分:3)

这取决于您在一天结束时对数据的需求。您是否需要能够在滚动文件之外对数据进行审核。如果您不需要浏览数据或永久存储数据,那么平面文件将比MySQL更快,如果您只是附加到文件的末尾,则很可能。

如果您需要更有用的数据,您需要将其存储在mysql中。我建议您构建表格,如:

id  int
timestamp datetime default now()
desc varchar

这样你就不必在PHP中实际创建时间戳,只需让mysql完成工作,那么你就可以从表中做更多复杂的查询。但是,您想要考虑的另一个考虑因素是进入此表的数据量,因为这也会影响您的最终决策。

答案 1 :(得分:2)

如果您只是记录信息以便稍后查看,则写入文件会更快。写入数据库仍然必须写某处,并且您将获得数据库引擎的额外开销。

答案 2 :(得分:1)

根据我的经验,编写.txt文件比使用MySQL编写日志要快得多。请注意,如果您在数据库中写入注释,那么您必须编写更多代码以便稍后获取数据库的 out ,而不是仅使用cat或更多或vi或类似的看到评论。

如果您选择数据库路径:完全可以保持连接打开一小时,但是如果您有一段时间没有写入数据库,则必须能够处理“服务器已离开”。 / p>

- 皮特