php网站日志怎么记录

naihetian0 2010-06-25 03:50:31
目前我做一个大型的网站,想记录用户浏览的相关信息,然后统计报表
现在是直接记录到数据库,但是担心访问量大的时候对服务器造成压力过大
记录日志方面有什么好办法?
我想单独做一个日志服务器,但是访问量大的时候直接入库会不会锁表啊?
...全文
1823 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
naihetian0 2012-08-31
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 的回复:]

这个实践了,到底哪种方式好啊
[/Quote]
将日志记录到表里,然后定时将表中数据导出,然后清空表
fangxiaojuan2005 2012-08-14
  • 打赏
  • 举报
回复
这个实践了,到底哪种方式好啊
wolfswolfs 2011-03-08
  • 打赏
  • 举报
回复
这种我还没用过?这种内存的缓存队列有什么好处?
跟锁表有什么区别吗?我看了一下这个介绍,感觉跟锁表差不多啊,锁表也是产生队列
http://www.seoshiji.com/
naihetian0 2010-06-29
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 ryb7899 的回复:]
用insert delayed吧
或者对插入日志做一个内存的缓存队列
[/Quote]
这种我还没用过?这种内存的缓存队列有什么好处?
跟锁表有什么区别吗?我看了一下这个介绍,感觉跟锁表差不多啊,锁表也是产生队列
ryb7899 2010-06-29
  • 打赏
  • 举报
回复
用insert delayed吧
或者对插入日志做一个内存的缓存队列
naihetian0 2010-06-29
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 blue44sky 的回复:]
如果对日志的实习性要求不高的话,建议分表吧,每天一第日志表,用sphinx查询.
[/Quote]
目前根据业务需求已经分三张表了
准备日志服务器上记录的三张表,每天执行shell导出数据 然后清空
YHL27 2010-06-29
  • 打赏
  • 举报
回复
学习。。。
standford 2010-06-29
  • 打赏
  • 举报
回复
都有道理。。。。
blue44sky 2010-06-28
  • 打赏
  • 举报
回复
如果对日志的实习性要求不高的话,建议分表吧,每天一第日志表,用sphinx查询.
naihetian0 2010-06-28
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 myhope88 的回复:]
这个没考虑过,帮顶下
[/Quote]
naihetian0 2010-06-28
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 fxs_2008 的回复:]
效率问题不太清楚,我看过mysql的日志,像是一直打开的文件

感觉那个文件一直是处于open状态,不需要每次打开,感觉是一次打开,不断在添加写,如果是这样的话,应比数据库效率好些?
[/Quote]
我目前是这么做的
由于网站访问量还不算大 所以目前还可以
就是担心并发大量访问时,怕数据库挂掉
naihetian0 2010-06-28
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 quzhongxiong 的回复:]
呵呵,不管你用什么来记录这个结果,以我看来,你是最好先做好了,再来考虑这个问题比较合理,刚开发的时候你不可能将各种情况都能预测得到的,到了那一步,自然会有相应的方法来解决,只要你保留相应的扩展接口就行
[/Quote]
目前我做的是在网站服务器的数据库里记录的
会产生慢速SQL,所以要考虑做日志服务器的 呵呵,但是前期实现起来还是要先研究下方案
不能都在生产环境上测试呀 呵呵
myhope88 2010-06-28
  • 打赏
  • 举报
回复
这个没考虑过,帮顶下
fxs_2008 2010-06-28
  • 打赏
  • 举报
回复
效率问题不太清楚,我看过mysql的日志,像是一直打开的文件

感觉那个文件一直是处于open状态,不需要每次打开,感觉是一次打开,不断在添加写,如果是这样的话,应比数据库效率好些?
quzhongxiong 2010-06-28
  • 打赏
  • 举报
回复
呵呵,不管你用什么来记录这个结果,以我看来,你是最好先做好了,再来考虑这个问题比较合理,刚开发的时候你不可能将各种情况都能预测得到的,到了那一步,自然会有相应的方法来解决,只要你保留相应的扩展接口就行
naihetian0 2010-06-28
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 shadowsniper 的回复:]
引用 3 楼 naihetian0 的回复:
引用 1 楼 blue44sky 的回复:
1、数据量大可用先把数据按格式记录到文件里面,然后load数据库中。
2、用insert插入数据怕锁表,加上delayed吧

往文件写数据的时候那个文件也是锁的,大量的写入文件的效率比写入数据库的高吗?



将数据写入文件的速度其实并不是说一定比写入数据库高,而是为了分担数据库的压力而已……
[/Quote]
曾经我都想过把日志数据先写到memcache中来的,然后当value值达到1M时写入数据库
但是这个方法不行啊 哈哈
an9ryfr09 2010-06-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 naihetian0 的回复:]
引用 1 楼 blue44sky 的回复:
1、数据量大可用先把数据按格式记录到文件里面,然后load数据库中。
2、用insert插入数据怕锁表,加上delayed吧

往文件写数据的时候那个文件也是锁的,大量的写入文件的效率比写入数据库的高吗?
[/Quote]


将数据写入文件的速度其实并不是说一定比写入数据库高,而是为了分担数据库的压力而已。
磁盘IO的频率过高,对系统同样是很大的压力。我曾经在一个系统中采用大量文件缓存。然后运维天天找我说磁盘IO太高。后来我就将某些读写频率很高的数据放在memcache里了。
blue44sky 2010-06-25
  • 打赏
  • 举报
回复
建议这样做,插入文件的话,你可以把返回的数据放到一个栈(容器)中,当栈(容器)中的数据到一定数量时,写入文件中。
blue44sky 2010-06-25
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 naihetian0 的回复:]
引用 9 楼 amani11 的回复:
你看看分析软件效果
http://www.loganalyzer.net/cn/ 不是说就是这款,你可以找别的,功能总是类似的


如果你用文件保存,等到一定数量再插入数据库,要解决文件锁的问题,访问量大的时候,也是挺麻烦的
倒不如使用延迟插入操作DELAYED

可以详细的帮我介绍下延迟插入这个吗?
[/Quote]

insert delayed 后面的语句一样的
naihetian0 2010-06-25
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 amani11 的回复:]
你看看分析软件效果
http://www.loganalyzer.net/cn/ 不是说就是这款,你可以找别的,功能总是类似的


如果你用文件保存,等到一定数量再插入数据库,要解决文件锁的问题,访问量大的时候,也是挺麻烦的
倒不如使用延迟插入操作DELAYED
[/Quote]
可以详细的帮我介绍下延迟插入这个吗?
加载更多回复(9)

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧