不断增长的日志数据

3

我们的一个应用程序(预订/预约类型)通过单个DBAudit表处理日志数据。

问题是,由于这个表中的数据增长,基于它生成的报告已经严重减慢。有哪些选项(时间证明)?

以下可能是有效的选择:

  1. 通过多个表处理日志
  2. 定期自动删除旧数据
  3. 将旧数据迁移到其他存档数据库

其他具有大量活动日志的应用程序是如何维护此类问题的?

2个回答

3

您可以尝试定期预先计算数据中的重要指标,然后基于这些指标构建报告。

这将使您能够将旧的日志数据存档到数据仓库中,而不影响您的报告。


令人印象深刻的概念!谢谢专业 :) - tariq
预先计算的指标应该要在其他表中维护吧? - tariq
是的,在不使用原始生产数据外键的情况下,可以在单独的表格中进行。可以运行在后台的Windows服务每晚或每周计算,具体根据您的情况而定。我曾为客户做过这样的工作,并且效果非常好。但需要权衡的是报告并非实时更新(大多数情况下是可以接受的)。 - Herman Schoenfeld

0

是的,所有这些都是不错的选择,你应该尝试实现它们:

  1. 通过多个表处理日志 - 可以考虑仅在主表中保留最新数据,然后将其移动到某些历史表中。这取决于运行报告所需的数据量。
  2. 定期自动删除旧数据 - 我建议在删除数据之前先计算指标。尝试创建尽可能多的不占用空间的不同指标,然后在处理数据时仅保留结果并删除实际数据。
  3. 将旧数据迁移到其他归档数据库 - 仅在您真的无法承受删除任何数据的情况下才这样做。

除此之外,您还可以尝试为最常用的列添加报告表索引和/或尽可能优化查询。如果这些表中已经有索引,请确保定期重新构建这些索引。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接