【问题标题】:PHP MySQL visitors best way to count and detectPHP MySQL访问者计数和检测的最佳方法
【发布时间】:2011-07-19 19:49:23
【问题描述】:

我想统计网站每个页面的访问量并检测谁在线

我的解决方案


所有访问者会话的表格

-----------------------------------------------
|id | sessionid | last_active | member_id | ip|
-----------------------------------------------

没有成员的 member_id 为 -1,成员的成员 id 为 -1

每次点击的另一个表,以获得唯一的 sessionid

----------------------------------
|id | sessionid | url| visit_date|
----------------------------------

网站访问者总数是会话表的行数,每个页面访问数是该页面的 url 所在的行数


  1. 如果我们在页面上进行操作[adding cmets ...] url可能会出现问题,url会改变并插入新的访问!我应该使用页面的 id 吗?
  2. 多年后,一个通用网站的会话表会很拥挤,我们该怎么办?我们是否应该定期清理它,但总计数会发生什么或它不重要?访问表也会很拥挤,这会影响性能吗?我还可以做些什么?

好的,这是我的解决方案,我的问题是您的建议和改进是什么?

【问题讨论】:

    标签: php mysql database


    【解决方案1】:

    PHP 会话过期,表中的数据也应该过期。您可能可以连接到会话垃圾收集器/关闭处理程序以使表中的数据过期。

    或者使用基于数据库的会话并将您的会话和在线会员计数数据统一在一个地方。这是最好的解决方案,IMO,只要您不处理大量流量。

    【讨论】:

    • 基于数据库的会话没有问题,但是当会话被破坏时,站点的分析将被破坏??什么是替代品??
    • 默认会话清理功能没有可用的钩子(不幸的是,拥有一些钩子似乎是个好主意)。 - 但你可以滚动你自己的会话处理复杂
    猜你喜欢
    • 2012-05-02
    • 2011-04-11
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 2014-12-30
    • 2013-06-09
    • 2011-02-17
    • 1970-01-01
    相关资源
    最近更新 更多