MySQL跟踪系统

时间:2010-01-07 08:35:27

标签: mysql tracking

我必须实现一个由MySQL数据库备份的跟踪系统。系统将跟踪每个应用程序至少跟踪5个事件的许多应用程序(例如,点击链接x的用户数量,访问页面y的用户数量)。一些应用程序将拥有数百万用户,因此几千次更新/秒不是一个遥不可及的假设。 系统的另一个组成部分必须计算一些应该每分钟更新的统计信息。系统还应记录这些统计值的过去值。

我的一位朋友建议的方法是在日志表中记录每个事件,并拥有一个每分钟运行一次的cron作业,并计算所需的信息并更新统计表。

这对我来说听起来很合理。还有更好的选择吗?

感谢。

3 个答案:

答案 0 :(得分:1)

我已经使用cron登录到一个mysql日志表,然后对其进行处理。

我通常在我的应用中使用innodb表,但对于日志表,我将其作为myisam并使用了insert DELAYED . . .个查询。

Myisam没有提供innodb的所有好处,但我相信它会稍快一些(因为这个原因)。

您担心的主要问题是当您的cron运行时数据库锁定,但使用“insert delayed”会解决大部分问题。

答案 1 :(得分:1)

如果你的命中率太高,甚至插入到myisam表中的插入处理,你可能想要将最近的命中保存在内存中(memcache可以派上用场,或者你可以写一个自定义守护进程)并处理来自内存的命中定期进入数据库统计表(聚合)。

答案 2 :(得分:0)

我真的建议您使用现有的日志分析器来分析Web服务器中已有的日志。一个例子是webalizer。在我看来,更好的是外部系统,如google analytics。这样可以更好地工作,因为它将继续使用负载平衡器和缓存等中间系统。