2010-01-28 111 views
3

我即将开始开发一个日志记录系统,以便在当前PHP应用程序中进行未来实现,以从MYSQL数据库获取负载和使用情况统计信息。记录mysql查询

的统计信息将稍后被用来获得约每秒数据库调用,查询时间等

当然信息,当应用程序处于测试阶段,这只会被使用,因为它肯定会引起有点额外的负载本身。

然而,我最大的问号,现在是,如果我要使用MYSQL登录查询,或去一个基于文件系统。我猜想,在使用基于文件的系统来处理日志时,创建一些允许来自多个位置的文字的东西会有点令人头疼。

你会怎么做?

回答

3

的MySQL已经有日志记录建立在 - 手动的Chapter 5.2介绍这些。您可能会对常规查询日志(所有查询),二进制查询日志(查询更改数据)和慢日志(查询花费太长时间或不使用索引)感兴趣。

如果你坚持要用自己的解决方案,你会想要写一个数据库,中间层,你的所有DB通话经历,它可以处理的时机方面。至于你在哪里编写它们,如果你在开发中,这并不重要,但使用第二个分贝的想法并不差。不需要使用完全独立的数据库,就像使用不同的MySQL实例一样(在不同的机器上,或者只是使用不同端口的不同实例)。我会使用第二个MySQL实例而不是文件系统 - 您将获得像SUM和AVG一样的所有优秀SQL函数来解析数据。

1

如果你是在MySQL做测试,你应该将结果存储在不同的数据库如Postgres,这样你就不会与你的操作增加负载。

3

如果你感兴趣的是长期的,非实时的分析,打开MySQL的定期查询记录。有很多工具可用于对查询日志(常规查询和慢查询)进行分析,为您提供有关运行时间,返回的平均行数等信息。似乎是您在寻找的内容。

0

我同意macabail但只补充一点,你可以对夫妇这与一个cron作业和一个简单的脚本来提取和生成您可能需要的任何统计数据。