值得注意的是,在上述show status like 'com_select'指令的执行示例中,显示的SELECT语句统计信息仅仅表示当前会话连接执行的SELECT语句数量。因为,show status指令的完整语法如下:


SHOW [统计范围] STATUS [LIKE '状态项名称']

--统计范围关键字分为GLOBAL和SESSION(或LOCAL)两种。

在show status的完整语法中,"[]"中的部分是可选的,如果我们的show status语句中不包含统计范围关键字,则默认统计范围为SESSION,也就是只统计当前连接的状态信息。如果我们需要查询自当前MySQL启动后所有连接执行的SELECT语句总数,我们可以执行如下语句:


show global status like 'com_select';

以上即是show status的详细用法。由于show status的状态统计项较多,我们就不再一一解释每个统计项的具体含义,在这里,我们仅列出部分常用的状态信息查看语句:


--查看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';