首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >记录mysql查询

记录mysql查询
EN

Stack Overflow用户
提问于 2010-01-28 23:56:02
回答 5查看 4.9K关注 0票数 3

我即将开始开发一个日志系统,以便将来在当前的PHP应用程序中实现,以便从MYSQL数据库中获取负载和使用统计信息。

该统计数据稍后将用于获取每秒数据库调用数、查询次数等信息。

当然,这只会在应用程序处于测试阶段时使用,因为它本身肯定会造成一些额外的负载。

然而,我现在最大的疑问是,我是应该使用MYSQL来记录查询,还是应该使用基于文件的系统。我猜,当使用基于文件的系统处理日志时,创建允许从多个位置进行写入的东西会有点头疼?

你会怎么做?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-01-29 02:40:28

MySQL已经内置了日志-手册中的Chapter 5.2对此进行了描述。您可能会对通用查询日志(所有查询)、二进制查询日志(更改数据的查询)和慢查询(耗时过长或不使用索引的查询)感兴趣。

如果您坚持使用自己的解决方案,则需要编写一个数据库中间层,所有的DB调用都要经过这个中间层,它可以处理时间方面的问题。至于你在哪里编写它们,如果你是在devel中,这并不是太重要,但使用第二个db的想法并不坏。您不需要使用完全独立的DB,只要使用不同的MySQL实例(在不同的机器上,或者只是使用不同端口的不同实例)即可。我建议使用第二个MySQL实例而不是文件系统-您将获得所有优秀的SQL函数,如SUM和AVG来解析您的数据。

票数 3
EN

Stack Overflow用户

发布于 2010-01-29 02:40:26

使用常规日志,它将显示客户端活动,包括所有查询:

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/对日志进行分析。

票数 5
EN

Stack Overflow用户

发布于 2010-01-29 02:36:42

如果您感兴趣的是长期的、非实时的分析,那么打开MySQL的常规查询日志。有大量的工具可以对查询日志(包括常规查询和慢查询)进行分析,为您提供有关运行时间、平均返回行数等信息。这似乎就是您正在寻找的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2155825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档