mysql - 如何存储日志数据?

标签 mysql logging

我已经构建了一个随机执行任务的应用程序,我想收集各种统计数据并以图表形式显示。我的问题是我不确定如何将数据存储在数据库中,除非将每个日志写入新行,这似乎非常低效。

示例数据(5 分钟平均值):

  • 用户数量
  • 在线用户数量
  • 操作次数

存储这些信息的最佳方式是什么?我是否需要一个单独的表来记录我正在记录的内容,或者它们可以全部放在一个表中吗?

最佳答案

通常您不需要一直保存完整分辨率的数据,您可以定期将其重新处理成较低分辨率的数据以节省空间。例如,您可以存储一天的全分辨率(平均 5 分钟),但定期将该数据重新平均到 1 小时 bins/1 天 bins/1 个月 bins/等,同时还剔除数据。

这使您可以获得显示不同时间范围(小时、天、周、月等)事件的精美图表所需的数据,同时将行数限制为您的应用程序所需。

还有一些优秀的应用程序可以存储和显示时间序列数据。 MRTGRRDTool浮现在脑海中。请参阅本教程以获得深思熟虑: rrdtutorial

关于mysql - 如何存储日志数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9156837/

相关文章:

java - Hibernate 生成的查询 - 不存在的表

logging - NoSql 用于将 SOAP 请求保存到数据库以进行审计日志记录 - 然后进行查询?

git - 如何使用列单位分隔符查看 git 日志?

mysql - Node.js 在连接到 mysql 数据库后崩溃

logging - Kubernetes-Net/http:提取日志时的TLS握手超时(BareMetal)

mysql - GREATEST() 和 LEAST() 函数不能在 MySQL 5.7 的存储过程中使用 TIME 变量

mysql - 如何使用一组记录的值列表中的值更新列

logging - ServiceStack日志清理

mysql - 在 MySQL 表上正确使用连接

php - 从数据库中检索前 10 个