今天的MySQL表设置,昨天,每月日志

时间:2012-04-01 22:49:25

标签: php mysql database-design

我正在开发PHP / MySQL统计日志程序,并且正在尝试为它找到最佳的MySQL数据库结构。

有一部分访问者可以看到日期统计数据(即最新的20个条目),但也可以看到今天的整体,昨天的整体,过去7天整体和过去30天的整体统计数据。

根据我提取的数据,实时统计数据每60秒更新一次,每次更新至少有10个新条目。

我的逻辑是否正确设置两个表...一个用作“今天”的统计数据,另一个用作整体存档...如:

  

todays_stats
  ID
  from_url
  ENTRY_DATE

     

overall_stats
  ID
  from_url
  ENTRY_DATE

然后双重插入每个新条目,但每晚午夜通过cron作业截断todays_stats?

或者有更有效的方法吗?

2 个答案:

答案 0 :(得分:1)

这取决于您的每日统计行数,是否删除历史数据以及您拥有多少索引。我们需要删除历史数据并且有7~8个具有大量统计数据的索引,因此我们将数据分成日常表并编写存储过程来获取数据(最后一天,最后7天,最后30天等)。丢弃表比DELETE FROM table WHERE index=6-month-old-data

快得多

答案 1 :(得分:0)

我认为最好的方法是保留一个表格来保存当前数据集,然后你将有一个单独的表格用于整体统计数据,在午夜你将使用

从当前表格中插入所有数据。
INSERT INTO `overall` SELECT * FROM `current`

查询。然后,您将在成功复制数据后截断当前表。