应用程序日志存储

应用程序日志存储

我正在开发一个包含大量事件需要跟踪的 Web 应用程序。我将在大约 10 个 Web 服务器中安装该应用程序,并且需要将跟踪事件保存在数据库中以便进行分析。

我每分钟将收到 10 万个事件 = 每天 1.44 亿个事件,事件行包括(事件类型、用户 ID、对象 ID、上下文 ID、会话 ID、时间戳)

我考虑将它们存储在 MyISAM 表中,然后每天根据日期更改表名(即 log20090826、log20080827 等)。您还有其他/最好的想法吗?如果性能更高,我可以使用其他 RDBMS。

另一个问题:是否有任何方法可以知道某一行的时间戳而无需明确写出(不占用空间)?

谢谢,安德里亚

答案1

对于如此大量的数据,我建议您使用文本日志文件并对其进行解析。 6 个月后,您将拥有 26,000 百万条记录,我确信您将无法使用 SQL 对其进行分析。

此外,如果这很重要,您可以尝试将数据记录在 BigTable 或 Hadoop 中。由于您的数据模型,这些非 SQL 数据库将很好地完成这项工作。

这里是一篇对您有帮助的文章。

答案2

MyISAM 没问题,只要确保使用“INSERT DELAYED”准备查询,这样服务器就可以放松一点:)

相关内容