> 백엔드 개발 > PHP 튜토리얼 > mysql设计,统计脚本执行的间隔时间。解决方法

mysql设计,统计脚本执行的间隔时间。解决方法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-13 11:55:28
원래의
790명이 탐색했습니다.

mysql设计,统计脚本执行的间隔时间。

本帖最后由 mumubangditu 于 2014-03-29 19:56:24 编辑 我有一个RSS程序,想统计一下:是其他网站的服务器订阅了我的RSS,还是普通客户通过浏览器打开执行。
现在的思路是:统计每个IP地址的访问频率用以区分。如果是其他网站的服务器订阅了我的RSS,那么一定是用自动程序定时执行,每次执行间隔时间是一个定数,比如每60分钟,每90分钟访问一次。

$ip=$_SERVER['REMOTE_ADDR'];

这样的情况,怎样设计mysql数据库呢? 本次访问时间-上次访问时间;上次访问时间-前次访问时间;再前次访问时间-前次访问时间(应该还须考虑一个每次脚本打开完成时间的误差可能正负几秒)... 这样的情况统计5次,大概可以确定该IP是自动程序,下次无需再统计。
------解决方案--------------------
本帖最后由 xuzuning 于 2014-03-29 20:07:08 编辑 两个字段:ip, time(unix时间戳)
判定条件:对于同一ip  (max(time) - min(time)) / count(*) = avg(time) - min(time)
算法依据:等差数列的性质
------解决方案--------------------
其实你还可以判断User-Agent信息。
------解决方案--------------------
确定是server的,应该放在另一个表(例serverlist)中记录。
首先,版主讲的是每一次有访问且未确定是否服务器,都将ip与访问时间写入一个表(例accesslog)。每次写入后,判断是否服务器访问。(通常要几次才可以确定)
如果是,在serverlist插入一条记录,并把accesslog对应ip的记录删除。
当这个服务器再访问时,先判断serverlist有没有这个ip,如果有,则不写入accesslog。
------解决方案--------------------
登记访问信息,当然是流水账
只需 insert 即可,分析计算一般也只需一条 update
弄的好的话,还可以用 view

如果你不把登记当做流水账则需先 select 定位,然后 update 修改
最后再分析计算
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿