MySQL – 用SHOW STATUS 查看MySQL服务器状态

在工作中,有时候我们需要了解MySQL服务器的状态信息,这时候,我们可以使用SHOW STATUS命令来查看服务器的状态信息。

SHOW STATUS命令会显示每个服务器变量的名字和值,状态变量是只读的。我们可以在MySQL客户端下运行SHOW STATUS或者在命令行运用mysqladmin extended-status来查看这些变量。如果使用SQL命令,可以使用LIKE或者WHERE来限制结果。LIKE可以对变量名做标准模式匹配。

SHOW STATUS中混杂了全局和会话变量,其中许多变量有双重域:既是全局变量,也是会话变量,有相同的名字。如果只需要看全局变量,需要改为SHOW GLOBAL STATUS查看。

我们看一下在自己的数据库里执行SHOW STATUS命令时,会得到300多条状态信息,这种情况下,如果直接用这个命令,从中筛选需要的记录也是一个很耗费精力的事情。这时候,我们就可以使用前文所说的LIKE来定制我们的命令。

比如我们需要查看当前服务器启动后的运行时间,可以执行如下:

show status like 'uptime'; 得到如下结果

如果我们需要查询本次服务器启动之后执行select语句的次数,可以执行如下命令:

show status like 'com_select';

当然,我们也可以使用通配符来进行模糊匹配,例如:

show status的状态统计项很多,这边可以参考mysql官方手册列出的信息找到对自己有用的信息:

https://dev.mysql.com/doc/refman/5.7/en/server-status-variables.html

这边列出部分常用的状态信息查看语句:

--查看MySQL本次启动后的运行时间(单位:秒)

show status like 'uptime';

--查看select语句的执行数

show [global] status like 'com_select';

--查看insert语句的执行数

show [global] status like 'com_insert';

--查看update语句的执行数

show [global] status like 'com_update';

--查看delete语句的执行数

show [global] status like 'com_delete';

--查看试图连接到MySQL(不管是否连接成功)的连接数

show status like 'connections';

--查看线程缓存内的线程的数量。

show status like 'threads_cached';

--查看当前打开的连接的数量。

show status like 'threads_connected';

(此条与上面重复)--查看当前打开的连接的数量。

show status like 'threads_connected';

--查看创建用来处理连接的线程数。如果Threads_created较大,你可能要增加thread_cache_size值。

show status like 'threads_created';

--查看激活的(非睡眠状态)线程数。

show status like 'threads_running';

--查看立即获得的表的锁的次数。

show status like 'table_locks_immediate';

--查看不能立即获得的表的锁的次数。如果该值较高,并且有性能问题,你应首先优化查询,然后拆分表或使用复制。

show status like 'table_locks_waited';

--查看创建时间超过slow_launch_time秒的线程数。

show status like 'slow_launch_threads';

--查看查询时间超过long_query_time秒的查询的个数。

show status like 'slow_queries';

作  者:Testfan Chris

出  处:微信公众号:自动化软件测试平台

版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接

猜你喜欢

转载自www.cnblogs.com/testfan2019/p/12176728.html