目前,我有一个在我的服务器上创建的工具的访问日志。这些工具不会过期,但是它们都是在不同的时间创建的(很像产品)。它们具有 ID、各种数据字段以及创建时的时间戳。
我需要的是根据时间将访问日志条目分组和计数为 x 个间隔。现在我正在修补 10 个步骤(间隔)。我想在这 10 个时间间隔内计算访问条目,从而根据时间有一种使用参考。我没有使用固定的时间间隔,我的间隔是(当前时间 - 添加时间)/10。
这是我的输出目标:
From: 1351159089
Now: 1353932533
From To Entries
1351159089 - 1351436433.4 = 2
1351436433.4 - 1351713777.8 = 1
1351713777.8 - 1351991122.2 = 0
1351991122.2 - 1352268466.6 = 2
1352268466.6 - 1352545811 = 5
1352545811 - 1352823155.4 = 0
1352823155.4 - 1353100499.8 = 2
1353100499.8 - 1353377844.2 = 0
1353377844.2 - 1353655188.6 = 2
1353655188.6 - 1353932533 = 3
我现在所做的只是使用 PHP 和多个查询:
$from = strtotime($timeCreated);
$now = time();
$dif = $now-$from;
$steps = $dif/10;
for($i=0; $i <= 9; $i++) {
$intervalFrom = $from+($steps*$i);
$intervalTo = $intervalFrom+$steps;
$get = mysql_fetch_assoc(mysql_query('SELECT count(id) as `total` FROM `access_log` WHERE `time` >= FROM_UNIXTIME('.$intervalFrom.') AND `time` < FROM_UNIXTIME('.$intervalTo.') AND `item` = "'.$itemID.'"'));
$accessLogs[$i] = $get['total'];
}
我不会说它很慢,但在一页上我可能有 5-10 个或更多这样的内容,然后它开始显示只有一个项目的一堆查询的缺点。
是否有一种更智能、更快速的方法来仅使用一个或两个 MySQL 查询来获得此输出?
谢谢
编辑:已经很久了,想知道这是否可以做到?