包含事件unixtime到day统计信息的表

时间:2010-03-07 06:57:56

标签: php mysql

我有一本在线词典。所有输入都保存在表“id-word-unixtime”中。现在我想统计一天中搜索了多少单词,然后用这些数据制作图表或表格。

将此归档的最佳方式是什么?我应该为日期创建另一个表还是写一个PHP脚本?

我只需要基本方向。

4 个答案:

答案 0 :(得分:1)

您可能希望计算一次答案,然后缓存结果,以减少服务器上的负载。一天结束后,您只需计算一次所有统计数据。

重要的事情是当一天开始和结束时。如果您的网站遍布访问者,则应该使用UTC。如果95%的访问者来自美国,那么东部时间可能更有意义。

答案 1 :(得分:1)

那里有很多问题,但你似乎关注的主要问题是从unixtime获取日期。

MySQL有FROM_UNIXTIME()

这样的事情应该让你开始:

  SELECT FROM_UNIXTIME(unixtime,'%Y-%m-%d') as the_date,
         count(word) as word_count
    FROM table
-- add conditions here
GROUP BY 1;

如果您有关于数据呈现的PHP特定问题,我建议您再打开一个问题。

答案 2 :(得分:1)

SELECT COUNT(*), FROM_UNIXTIME(unixtime, '%Y-%M-%D')
FROM table
WHERE unixtime BETWEEN $start AND $end
GROUP BY FROM_UNIXTIME(unixtime, '%Y-%M-%D')

这应该每天为您提供每日搜索。这是一个非常昂贵的搜索,所以你可能想要缓存它。

答案 3 :(得分:0)

你是对的,这是一个非常基本的SQL查询。像

这样的东西
SELECT word, count(word) FROM table 
WHERE unixtime BETWEEN (starttime AND endtime) GROUP BY word 

您可以在PHP或MySQL中计算starttimeendtime

当然,你需要编写一个PHP脚本来绘制图形,但这是另一个问题。