在工作中,有时候我们需要了解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
出 处:微信公众号:自动化软件测试平台
版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接