我有一个安装了LAMP的繁忙的Web服务器,我想知道,有没有办法计算服务器中每秒执行多少查询(mysql)?
谢谢。
答案 0 :(得分:9)
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';
答案 1 :(得分:6)
尝试Jeremy Zawodny的优秀实用工具mytop。
如果安装了Perl模块Time::HiRes,mytop将自动使用它来生成每秒高分辨率的查询信息。
答案 2 :(得分:3)
从SHOW GLOBAL STATUS中挖掘出有用的信息;命令,包括执行的查询数(如果你的MySQL是5.0.76或更高版本)。
请参阅http://dev.mysql.com/doc/refman/5.0/en/server-status-variables.html
答案 3 :(得分:2)
您可以使用:
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
。
答案 4 :(得分:1)
当您使用“STATUS”命令(不是SHOW STATUS)时,MySQL会计算自服务器启动以来每秒的查询次数。
使用MySQL 5.1.63进行测试。
答案 5 :(得分:0)
我们可以为此制作一个小脚本。这将是下面的一些事情。
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"