目前我做一个大型的网站,想记录用户浏览的相关信息,然后统计报表
现在是直接记录到数据库,但是担心访问量大的时候对服务器造成压力过大
记录日志方面有什么好办法?
我想单独做一个日志服务器,但是访问量大的时候直接入库会不会锁表啊?

解决方案 »

  1.   

    1、数据量大可用先把数据按格式记录到文件里面,然后load数据库中。
    2、用insert插入数据怕锁表,加上delayed吧
      

  2.   

    WEB服务器日志,比如APACHE日志分析软件
      

  3.   

    你看看分析软件效果
    http://www.loganalyzer.net/cn/   不是说就是这款,你可以找别的,功能总是类似的
    如果你用文件保存,等到一定数量再插入数据库,要解决文件锁的问题,访问量大的时候,也是挺麻烦的
    倒不如使用延迟插入操作DELAYED
      

  4.   


    insert delayed 后面的语句一样的
      

  5.   

    将数据写入文件的速度其实并不是说一定比写入数据库高,而是为了分担数据库的压力而已。
    磁盘IO的频率过高,对系统同样是很大的压力。我曾经在一个系统中采用大量文件缓存。然后运维天天找我说磁盘IO太高。后来我就将某些读写频率很高的数据放在memcache里了。
      

  6.   

    曾经我都想过把日志数据先写到memcache中来的,然后当value值达到1M时写入数据库 
    但是这个方法不行啊 哈哈
      

  7.   

    效率问题不太清楚,我看过mysql的日志,像是一直打开的文件感觉那个文件一直是处于open状态,不需要每次打开,感觉是一次打开,不断在添加写,如果是这样的话,应比数据库效率好些?
      

  8.   

    目前我做的是在网站服务器的数据库里记录的
    会产生慢速SQL,所以要考虑做日志服务器的 呵呵,但是前期实现起来还是要先研究下方案
    不能都在生产环境上测试呀 呵呵
      

  9.   

    如果对日志的实习性要求不高的话,建议分表吧,每天一第日志表,用sphinx查询.
      

  10.   

    目前根据业务需求已经分三张表了
    准备日志服务器上记录的三张表,每天执行shell导出数据 然后清空
      

  11.   

    用insert delayed吧
    或者对插入日志做一个内存的缓存队列
      

  12.   

    这种我还没用过?这种内存的缓存队列有什么好处?
    跟锁表有什么区别吗?我看了一下这个介绍,感觉跟锁表差不多啊,锁表也是产生队列
    http://www.seoshiji.com/