什么更有效 - 将日志存储在 sql 数据库或文件中?
我很少经常通过cron加载脚本。现在我不存储任何日志,所以如果任何脚本无法加载,在我看到结果之前我都不会知道它 - 即使我注意到结果不正确,我也不能做任何事情,因为我不知道哪个脚本失败了。
我决定存储日志,但我仍然不确定如何做到这一点。所以,我的问题是 - 什么更有效 - 将日志存储在sql数据库或文件中?
我可以在mysql数据库中创建“logs”表,并将每个日志存储在单独的行中,或者我可以使用php的file_put_contents或fopen / fwrite将日志存储在单独的文件中。
我的脚本在工作时每分钟大约会增加 5 个日志(总共)。我做了一些测试来确定什么更快 - fopen / fwrite或mysql的插入。我循环了一个“insert”语句 3000 次以生成 3000 行,循环 fopen/fwrite 3000 次以使用示例文本生成 3000 个文件。Fwrite的执行速度比sql的插入快4-5倍。我做了第二个循环 - 我循环了一个“select”语句并将其分配给字符串3000次 - 我还使用“fopen”打开了3000个文件并将结果分配给字符串。结果是一样的 - fopen/fwrite 完成任务的速度提高了 4-5 倍。
那么,对于所有有经验的程序员 - 您在存储日志方面有什么经验?有什么建议吗?
04.09.2011 编辑 - 谢谢大家的回答,他们帮助了妈妈很多。每个帖子都很有价值,所以很难接受一个答案;-)