跟踪当前连接设备上的用户

时间:2014-03-07 21:39:12

标签: php mysql

我想找到一种让我的网站定期ping或定期向我的服务器报告的方法,这样我就可以更好地跟踪使用情况并进行自己的分析等。

我的网站不是标准网站,而是流媒体设备,我想在报告用户ID的设备的网址中使用GET请求。

然后,php脚本会在每个报告的MySQL表上更新一个标志。我不清楚的部分是当用户设备不再报告时如何最好地清除或更改标志,这样我的数据库就不会将用户显示为活动状态。

没有“注销”功能,因此当用户不使用设备时,没有安全的方法来清除标记。

也许有一个更好的方法可以做到这一点,我没有考虑过,所以我绝对愿意接受建议。我对php / sql的东西很绿,所以我仍然找到了我的方式:)

TIA

1 个答案:

答案 0 :(得分:0)

对于像这样的简单“ping”数据,你:

  1. 不应该将其提交到磁盘。是的,IO可能很小,但是不断的小IO操作流可能会导致很大的开销问题。
  2. 不应该关心这些数据的持久性。
  3. 这就是MEMORY tables的原因。只需确保您在其中存储最少的数据,并经常清理过期的数据。

    例如:

    CREATE TABLE pings (
      user_id INTEGER UNSIGNED,
      timestamp INTEGER UNSIGNED,
      PRIMARY KEY(user_id)
    ) Engine=MEMORY;
    
    INSERT INTO pings (user_id, timestamp) VALUES (1,NOW()) ON DUPLICATE KEY UPDATE timestamp=NOW();
    

    并清除超过一小时的签到:

    DELETE FROM pings WHERE timestamp < NOW() - INTERVAL 1 HOUR;