PHP如何高效记录访问日志?
现有方法,对于每一次访问,采用
$handle = fopen($fn, "a");
fwrite($handle, $message);
fclose($handle);
老大说这样效率太低。
是否把$message做个缓存,到了一定数量再写文件会效率高一些?
或者还有什么其他更好的办法?
你们老大说的效率很低是指什么?写入文件操作太频繁,效率低?还是其他什么原因?
这样子做的效率是很低,如果访问量高肯定会出问题,为什么要自己开发统计系统呢,可以在网上找个现成的,只要做好配置就好了,像是www.vdoing.com自己去看操作去。
哪就写数据库,将文件操作交给数据库来处理.
自己用SSH写个脚本交给数据库来操作呗
error_log函数也是一种方法,插入到数据库也行。
你说的缓存方法不行,一般的数据缓存还不是读写文件了。
另外我想说效率都是差不多的。你用数据库会增加数据库的负荷
最好的办法就是:你让你们老大想更好的办法吧。
学习中
除了写内存,fopen和 fclose是最高效的方式了。
如果实在要降低IO,用memcache先记录吧,然后在系统空闲或者缓存满的时候一次写入磁盘。但是这样可能会丢数据。
做个定时器 到一定时间将缓存的数据进行写操作
相关问答:
公司名称 医元网
职位名称 PHP开发高级工程师
招聘人数 1
工作地点 上海
薪水待遇 面议
电子邮箱 zik@yynet.cn
公司网址 http://www.yynet.cn
公司介绍 医元网-专注医患互动,架起医患 ......
请问一下各位大虾,我用php做个网页游戏,当然是最垃圾的那种html的,
现在我想把所有玩家和怪物,npc的数据储存,
当然,数据库中当然有,但是我又不想过多的去查询数据库,
比如战斗系统,肯定要先初始化双方数 ......
大家如何做字符串过滤的?
如果 get_magic_quotes_gpc off
那么 手动 addslashes $_COOKIE,$_POST,$_GET
如果 设置 set_magic_quotes_runtime(0)
对于从数据库取出来的数据,那么入库,更新 ......