3

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

问题在于,由于该表中数据的增长,基于它生成的报告已经“大幅”放缓。有哪些选择(时间证明)?

这些可以是有效的选择吗:

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

具有大量活动日志的其他应用程序如何维护这一点?

4

2 回答 2

3

您可以尝试每隔一段时间预先计算数据中的重要指标,然后根据这些指标构建您的报告。

这将允许您将旧日志数据归档到数据仓库中,而不会影响您的报告。

于 2013-02-22T07:10:55.780 回答
0

是的,所有这些都是不错的选择,您可能应该尝试实现所有这些:

  1. 通过多个表处理日志——也许考虑只在主表中保留最新数据,然后稍后将它们移动到一些历史表中。这取决于运行报告真正需要多少数据。
  2. 定期自动删除旧数据——我会考虑在删除数据之前先计算指标。尝试创建尽可能多的不同指标,以减少空间消耗,然后在处理数据时保留结果并删除实际数据。
  3. 将旧数据迁移到其他存档数据库——我只会在您真的无法删除任何数据的情况下这样做。

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

于 2013-02-24T04:37:34.180 回答