mysql统计每秒执行多少个查询,有啥办法吗?

Posted

技术标签:

【中文标题】mysql统计每秒执行多少个查询,有啥办法吗?【英文标题】:Mysql count how many queries per second are executed, is there any way?mysql统计每秒执行多少个查询,有什么办法吗? 【发布时间】:2011-02-14 19:36:45 【问题描述】:

我有一个安装了 LAMP 的繁忙网络服务器,我想知道,有没有办法计算服务器中每秒执行的查询数 (mysql) 数?

谢谢。

【问题讨论】:

【参考方案1】:

你可以使用:

 mysqladmin -u root -p  status

这将返回如下输出:

Uptime: 17134  Threads: 2  Questions: 1245  Slow queries: 0  Opens: 49  Flush tables: 1  Open tables: 42  Queries per second avg: 0.072

这里每秒查询数为:0.072,即questions/uptime

【讨论】:

【参考方案2】:
SELECT s1.variable_value / s2.variable_value
FROM information_schema.global_status s1, information_schema.global_status s2
WHERE s1.variable_name='queries'
AND s2.variable_name ='uptime';

【讨论】:

对于使用 mysql 5.7+ 的任何人,全局状态表已移至 performance_schema【参考方案3】:

当您使用“STATUS”命令(而不是 SHOW STATUS)时,MySQL 将为您计算自服务器启动以来每秒的查询次数。

用 MySQL 5.1.63 测试。

【讨论】:

【参考方案4】:

我们可以为此编写一个小脚本。如下所示。

    declare -i a
    declare -i b
    declare -i c
    a=`mysql -uroot -pxxxxx -e "show status like 'Queries'" | 
    tail -1 | awk 'print    $2'`
    echo "$a"
    sleep 1
    b=`mysql -uroot -pxxxxx -e "show status like 'Queries'" | 
    tail -1 | awk 'print                 $2'`
    echo "$b"
    c=$b-$a
    echo "Number of Queries per second is: $c"

【讨论】:

这在 MySQL 中应该是可以做到的,不是吗?可悲的是我不知道该怎么做。【参考方案5】:

可以从 SHOW GLOBAL STATUS 中挖掘有用的信息;命令,包括执行的查询数(如果您的 MySQL 是 5.0.76 或更高版本)。

见http://dev.mysql.com/doc/refman/5.0/en/server-status-variables.html

【讨论】:

作为此查询的一部分包含的所有问题...? 我正在寻找 mysql 如何计算这个问题值或查询值。我正在做 COM_SELECT、COM_UPDATE、COM_SET_OPTION、COM_UPDATE、COM_DELETE 等等的总和,但没有得到这两者之间的完全匹配。 QuestionsQueries 之间的差异可能涉及存储例程。【参考方案6】:

试试 Jeremy Zawodny 的出色实用工具 mytop。

如果您安装了 Perl 模块 Time::HiRes,mytop 将自动使用它来生成每秒高分辨率查询信息。

【讨论】:

我没有安装那个。我找到了其他方式 mysqladmin status

以上是关于mysql统计每秒执行多少个查询,有啥办法吗?的主要内容,如果未能解决你的问题,请参考以下文章

nginx 查看每秒有多少访问量

面试官之问:知道你的接口“QPS”是多少吗? 怎么办

nginx 查看每秒有多少访问量

mysql数据库,连接数,一秒写入多少条数据

MySQL在一个查询中应用多个条件[重复]

怎么统计mysql中有多少个死锁?