一、思路
(一)把请求地址和请求时间存入数据库
浏览器每次请求时,服务器都会记录请求IP地址,请求时间(毫秒数)。
(二)提供接口来查询总数
统计过去一秒内的请求记录个数:
select count(*) from record where time > 开始时间 and time <= 开始时间 + 1000
注意:
一秒内的间隔是1000毫秒。
开始时间可以是选择在查询时的毫秒数减去三秒或者四秒。
或者明确指定从哪一秒开始。
(三)其他查询
1、查询从哪一天的哪个小时开始的总共请求数。
2、查询一定时间内的平均请求量
3、查询过去1分钟内的平均请求量
4、查询过去一秒内的瞬间请求量
5、查询一天内的最大请求量
总结:需要筛选出同一年的,再筛选出同一个月的,再筛选出同一天的。
二、改进
(一)每天一个表
如果磁盘空间充足,可以每个月建一个数据库,每天的请求数据单独一个表存放。
(二)分类汇总
如果需要统计获取过去一分钟内的总共请求量,需要筛选,求和汇总。
根据时刻来查询,需要复杂的时间转换。