我即将开始开发一个日志记录系统,以便在当前PHP应用程序中进行未来实现,以从MYSQL数据库获取负载和使用情况统计信息。记录mysql查询
的统计信息将稍后被用来获得约每秒数据库调用,查询时间等
当然信息,当应用程序处于测试阶段,这只会被使用,因为它肯定会引起有点额外的负载本身。
然而,我最大的问号,现在是,如果我要使用MYSQL登录查询,或去一个基于文件系统。我猜想,在使用基于文件的系统来处理日志时,创建一些允许来自多个位置的文字的东西会有点令人头疼。
你会怎么做?
我即将开始开发一个日志记录系统,以便在当前PHP应用程序中进行未来实现,以从MYSQL数据库获取负载和使用情况统计信息。记录mysql查询
的统计信息将稍后被用来获得约每秒数据库调用,查询时间等
当然信息,当应用程序处于测试阶段,这只会被使用,因为它肯定会引起有点额外的负载本身。
然而,我最大的问号,现在是,如果我要使用MYSQL登录查询,或去一个基于文件系统。我猜想,在使用基于文件的系统来处理日志时,创建一些允许来自多个位置的文字的东西会有点令人头疼。
你会怎么做?
的MySQL已经有日志记录建立在 - 手动的Chapter 5.2介绍这些。您可能会对常规查询日志(所有查询),二进制查询日志(查询更改数据)和慢日志(查询花费太长时间或不使用索引)感兴趣。
如果你坚持要用自己的解决方案,你会想要写一个数据库,中间层,你的所有DB通话经历,它可以处理的时机方面。至于你在哪里编写它们,如果你在开发中,这并不重要,但使用第二个分贝的想法并不差。不需要使用完全独立的数据库,就像使用不同的MySQL实例一样(在不同的机器上,或者只是使用不同端口的不同实例)。我会使用第二个MySQL实例而不是文件系统 - 您将获得像SUM和AVG一样的所有优秀SQL函数来解析数据。
如果你是在MySQL做测试,你应该将结果存储在不同的数据库如Postgres
,这样你就不会与你的操作增加负载。
如果你感兴趣的是长期的,非实时的分析,打开MySQL的定期查询记录。有很多工具可用于对查询日志(常规查询和慢查询)进行分析,为您提供有关运行时间,返回的平均行数等信息。似乎是您在寻找的内容。
使用一般的日志,它会显示客户端活动,包括所有的查询:
http://dev.mysql.com/doc/refman/5.1/en/query-log.html
如果你需要在每个查询花费的时间非常详细的统计数据,使用慢日志用long_query_time时间的0(或一些其它足够短的时间):
http://dev.mysql.com/doc/refman/5.1/en/slow-query-log.html
然后使用http://www.maatkit.org/根据需要来分析日志。
我同意macabail但只补充一点,你可以对夫妇这与一个cron作业和一个简单的脚本来提取和生成您可能需要的任何统计数据。