查看MySQL线程管理状况(查看mysql线程)
MySQL线程管理状况查看是databases(数据库)系统的一项重要内容,如何充分发挥MySQL的功能,提升MySQL的吞吐量,就需要我们重视MySQL的线程管理情况,线程管理状况能反映出数据库的实时性能,比如执行效率以及吞吐量,下面我们就看一下如何查看MySQL线程管理状况。
MySQL线程管理状况不外乎是MySQL线程数,以及Innodb 连接数和活动状态,我们可以使用MySQL InnoDB状态扩展指令查看线程管理状况。
MySQL查看InnoDB状态使用命令如下:
SHOW ENGINE INNODB STATUS;
运行上面这条指令,我们可以获得MySQL线程管理状况,以下为运行结果示例:
————————
LATEST DETECTED DEADLOCK
————————
2019-11-16 19:14:48 0x7fcacf437700
*** (1) TRANSACTION:
TRANSACTION 17903039601, ACTIVE 0 sec starting index read
mysql tables in use 1, locked 1
LOCK WAIT 7 lock struct(s), heap size 1136, 11 row lock(s)
MySQL thread id 73539, OS thread handle 139898420079104, query id 1406437 localhost root update
update projects set project_active = 0 where project_id = 5
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 112 page no 4 n bits 144 index `PRIMARY` of table `mysql`.`projects` trx id 17903039601 lock_mode X locks rec but not gap waiting
从上述的结果中我们可以看出:活动状况tables in use 个表,locked 表, Lock Wait 7 对象,row lock 11 条,MySQL唯一线程id 73539,捕获锁状态,表锁定等详细信息:
同时我们还可以使用如下指令获取当前线程状态:
SHOW PROCESSLIST;
其中Id为唯一MySQL线程ID,State列显示当前线程的状态信息,Time列是当前线程的查询执行时长。
更多MySQL线程管理状况信息,可以使用如下指令查看:
SHOW GLOBAL STATUS LIKE ‘Threads%’;
这一指令可以查看MySQL线程管理状况,比如总线程数,正连接中线程数,活跃线程数,死锁线程数,中断线程数等信息,从中我们可以发现MySQL对外服务状况,从而及时处理性能瓶颈问题,确保MySQL高效运行。
总结一下,通过上述指令可以查看MySQL线程管理状况,可以了解MySQL的当前性能,重视MySQL线程管理状况,及时处理性能瓶颈和优化即可有效提升MySQL的运行效率。