我有一本在线词典。所有输入都保存在表“id-word-unixtime”中。现在我想统计一天中搜索了多少单词,然后用这些数据制作图表或表格。
将此归档的最佳方式是什么?我应该为日期创建另一个表还是写一个PHP脚本?
我只需要基本方向。
答案 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中计算starttime
和endtime
。
当然,你需要编写一个PHP脚本来绘制图形,但这是另一个问题。