show processlist可以检查mysql当前sql语句的执行情况,而show status就可以检查mysql当前的状态
命令:show status(PS:可以通过like来过滤一些不必要的信息)
这个命令返回的信息相当之多,一共返回了291行信息(不用版本可能会有所差异哈),我选择了几个比较重点的来进行分析。
1.慢查询
mysql> show status like '%slow%';
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| Slow_launch_threads | 0 |
| Slow_queries | 0 |
+---------------------+-------+
Slow_queries显示了当前慢查询的数量,如果慢查询很多,可以通过慢查询日志或者show processlist检查慢查询语句。
2.链接数
mysql> show status like '%max_used_connections%';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| Max_used_connections | 4 |
+----------------------+-------+
如果显示的链接数过大,留意当前服务器的并发数,单台服务器是不是已经不堪重负了。一般的,连接数应该为最大链接数的85%左右。
3.key_read
mysql> show variables like 'key_buffer_size';
+-----------------+---------+
| Variable_name | Value |
+-----------------+---------+
| key_buffer_size | 8384512 |
+-----------------+---------+
1 row in set (0.00 sec)
mysql> show global status like 'key_read%';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Key_read_requests | 436 |
| Key_reads | 6 |
+-------------------+-------+
2 rows in set (0.00 sec)
key_buffer_size是对myisam引擎影响很大的一个参数(目前mysql不应该再使用myisam引擎了,除了迫不得已的情况)。上面命令可以得出一共有436个索引请求,其中6个请求在内存中没有找到索引,而在硬盘中读取索引。
!PS:一般地myisam的索引是存储在内存当中的,当索引长度大于key_buffer_size的时候,myisam无法从内存中获取索引,这是应该调高key_buffer_size的值。