【MySQL】几条运行监控命令

1.查看运行线程:show processlist

show processlist;

这是很重要的一个命令,用于显示用户运行线程。可以根据id号kill线程。也可以查表,效果一样:

select * from information_schema.processlist;

在这里插入图片描述

含义
Id 线程的唯一标志,可以根据它 kill 线程
User 启动这个线程的用户,普通用户只能看到自己的线程
Host 哪个 IP 端口发起的连接
db 操作的数据库
Command 线程的命令 https://dev.mysql.com/doc/refman/5.7/en/thread-commands.html
Time 操作持续时间,单位秒
State 线程状态,比如查询可能有 copyingtotmptable,Sortingresult,Sendingdata
https://dev.mysql.com/doc/refman/5.7/en/general-thread-states.html
Info SQL 语句的前 100 个字符,如果要查看完整的 SQL 语句,用 SHOW FULL PROCESSLIST

2.服务器运行状态:show status

SHOW STATUS 用于查看 MySQL 服务器运行状态(重启后会清空),有 session 和 global 两种作用域,格式:参数-值。可以用like带通配符过滤。

SHOW GLOBAL STATUS LIKE 'com_select';-- 查看 select 次数

在这里插入图片描述

3.存储引擎运行信息:show engine

show engine 用来显示存储引擎的当前运行信息,包括事务持有的表锁、行锁信息;事务的锁等待情况;线程信号量等待;文件IO请求;buffer pool统计信息。

例如:

show engine innodb status;

如果需要将监控信息输出到错误信息error log中(15秒钟一次),可以开启输出。

show variables like 'innodb_status_output%'; -- 开启输出:
SET GLOBAL innodb_status_output=ON; 
SET GLOBALinnodb_status_output_locks=ON;

我们现在已经知道了这么多分析服务器状态、存储引擎状态、线程运行信息的命令,如果让你去写一个数据库监控系统,你会怎么做?其实很多开源的慢查询日志监控工具,他们的原理其实也都是读取的系统的变量和状态。

猜你喜欢

转载自blog.csdn.net/weixin_43935927/article/details/114004781