在网站开发过程当中,有些时候咱们须要了解MySQL的服务器状态信息,譬如当前MySQL启动后的运行时间,当前MySQL的客户端会话链接数,当前MySQL服务器执行的慢查询数,当前MySQL执行了多少SELECT
语句、执行了多少UPDATE
/DELETE
/INSERT
语句等统计信息,从而便于咱们根据当前MySQL服务器的运行状态进行对应的调整或优化工做。缓存
在MySQL中,咱们可使用SHOW STATUS
指令语句来查看MySQL服务器的状态信息。下面,咱们以DOS命令窗口的形式链接MySQL,并执行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';
对应输出结果以下:spa
+---------------+-------+ | Variable_name | Value | +---------------+-------+ | Com_select | 1 | +---------------+-------+ 1 row in set (0.00 sec)
此外,与WHERE
子句中的LIKE
关键字相似,show status
后的LIKE
关键字也可使用'_'或'%'等通配符来进行模糊匹配。例如咱们能够执行以下语句来查看MySQL服务器的线程信息:线程
show status like 'Thread_%';
对应输出结果以下:code
+-------------------+-------+ | 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
的状态统计项较多,咱们就再也不一一解释每一个统计项的具体含义,在这里,咱们仅列出部分经常使用的状态信息查看语句: