我有一个表,在那里我存储历史数据,并为每5分钟跟踪的项目添加一条记录。这是一个仅使用两项的示例:
+----+-------------+
| id | timestamp |
+----+-------------+
| 1 | 1533209426 |
| 2 | 1533209426 |
| 1 | 1533209726 |
| 2 | 1533209726 |
| 1 | 1533210026 |
| 2 | 1533210026 |
+----+-------------+
问题是,我实际上在跟踪4k项,而且表不断变大,而且,如果我想得到上个月的数据,我不需要5分钟的数据。我想了解的是,是否有办法保存过去24小时的5分钟记录,过去7天的1小时记录等等。也许每小时我都可以从5分钟表中获取前12条记录,并将平均值存储在1小时表中?但是如果因为出错而丢失了一些记录呢?这是解决这个问题的正确方法还是有更好的选择?
1条答案
按热度按时间x4shl7ld1#
你在正确的轨道上。
要决定如何处理有多个问题——丢失条目、时间戳偏移1秒(或其他什么)等等。
通过提供计数(应始终为12),您可以发现一些小问题:
是的,每小时,做前一小时的数据。添加
WHERE timestamp BETWEEN ... AND ... + 3599
限制所讨论的范围。然后清除同一组数据。这张table应该
PRIMARY KEY(hr)
.除非您讨论的是表中的数百万行,否则我不建议使用
PARTITION
.