我已经构建了一个随机执行任务的应用程序,我想收集各种统计数据并以图表形式显示。我的问题是我不确定如何将数据存储在数据库中,除非将每个日志写入新行,这似乎非常低效。
示例数据(5 分钟平均值):
- 用户数量
- 在线用户数量
- 操作次数
存储这些信息的最佳方式是什么?我是否需要一个单独的表来记录我正在记录的内容,或者它们可以全部放在一个表中吗?
最佳答案
通常您不需要一直保存完整分辨率的数据,您可以定期将其重新处理成较低分辨率的数据以节省空间。例如,您可以存储一天的全分辨率(平均 5 分钟),但定期将该数据重新平均到 1 小时 bins/1 天 bins/1 个月 bins/等,同时还剔除数据。
这使您可以获得显示不同时间范围(小时、天、周、月等)事件的精美图表所需的数据,同时将行数限制为您的应用程序所需。
还有一些优秀的应用程序可以存储和显示时间序列数据。 MRTG和 RRDTool浮现在脑海中。请参阅本教程以获得深思熟虑: rrdtutorial
关于mysql - 如何存储日志数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9156837/