在MySQL中,我们可以使用SHOW STATUS指令语句来查看MySQL服务器的状态信息,下面,我们以DOS命令窗口的形式连接MySQL,并执行show status;指令,执行show status指令显示的部分结果.
当我们执行show status语句时,MySQL将会列出多达300多条的状态信息记录,其中包括了供我们查看了解的各种信息,不过,如果直接使用show status指令得到300多条记录,会让我们看得眼花缭乱,因此我们希望能够“按需查看”一部分状态信息,这个时候,我们可以在show status语句后加上对应的like子句,例如,我们想要查看当前MySQL启动后的运行时间,我们可以执行如下语句.
--查询当前MySQL本次启动后的运行统计时间,代码如下:
show status like 'uptime';
此时,我们就可以看到如下结果:
- +---------------+-------+
- | Variable_name | Value |
- +---------------+-------+
- | Uptime | 5667 |
- +---------------+-------+
- 1 row in set (0.00 sec)
同样的,如果我们要本次MySQL启动后执行的SELECT语句的次数,我们可以执行如下语句:
show status like 'com_select';
对应输出结果如下:
- +---------------+-------+
- | Variable_name | Value |
- +---------------+-------+
- | Com_select | 1 |
- +---------------+-------+
- 1 row in set (0.00 sec)
此外,与WHERE子句中的LIKE关键字类似,show status后的LIKE关键字也可以使用’_’或’%'等通配符来进行模糊匹配,例如我们可以执行如下语句来查看MySQL服务器的线程信息,代码如下:
show status like 'Thread_%';
对应输出结果如下:
- +-------------------+-------+
- | Variable_name | Value |
- +-------------------+-------+
- | Threads_cached | 0 |
- | Threads_connected | 1 |
- | Threads_created | 1 |
- | Threads_running | 1 |
- +-------------------+-------+
- 4 rows in set (0.00 sec)
值得注意的是,在上述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';
--查