我是靠谱客的博主 心灵美咖啡豆,最近开发中收集的这篇文章主要介绍mysql问题排查的各种命令,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、查看sql执行计划

explain + sql 语句—>查看 执行计划
比较全的博客连接(供参考):
https://www.cnblogs.com/klvchen/p/10137117.html

示例:EXPLAIN SELECT * FROM user WHERE nid = 3;
结果示例:在这里插入图片描述

二、查询进程列表

show processlist 语句—>显示进程列表
比较全的博客连接(供参考):
https://zhuanlan.zhihu.com/p/30743094

示例:


-- 跳转到 information_schema 数据库
USE information_schema;
-- 显示进程列表
SHOW PROCESSLIST;

或者

SELECT * FROM information_schema.`PROCESSLIST` WHERE info IS NOT NULL;

结果示例:
在这里插入图片描述

三、查看数据库配置的最大连接数

show VARIABLES like ‘max_connections’–>查看数据库配置的最大连接数
示例:

show VARIABLES like 'max_connections';

结果示例:
在这里插入图片描述

四、查看当前运行的所有事务

select * from information_schema.INNODB_TRX —>查看当前运行的所有事务
比较全的博客连接(包含各种事物):
https://www.cnblogs.com/jasonboren/p/13803948.html
示例:

select * from information_schema.INNODB_TRX

结果示例:
在这里插入图片描述
在执行结果中可以看到是否有表锁等待或者死锁,如果有死锁发生,可以通过下面的命令来杀掉当前运行的事务:

KILL 165667 ; KILL 后面的数字指的是 trx_mysql_thread_id 值。

五、 查询当前锁性能状态

SHOW STATUS LIKE ‘innodb_row_lock_%’—>查询当前锁性能状态

示例:

SHOW STATUS LIKE 'innodb_row_lock_%';

结果示例:
在这里插入图片描述

解释如下:

Innodb_row_lock_current_waits:当前等待锁的数量

Innodb_row_lock_time:系统启动到现在、锁定的总时间长度

Innodb_row_lock_time_avg:每次平均锁定的时间

Innodb_row_lock_time_max:最长一次锁定时间

Innodb_row_lock_waits:系统启动到现在、总共锁定次数

六、 查询死锁

示例:

SELECT b.trx_state, e.state, e.time, d.state AS block_state, d.time AS block_time
, a.requesting_trx_id, a.requested_lock_id, b.trx_query, b.trx_mysql_thread_id, a.blocking_trx_id
, a.blocking_lock_id, c.trx_query AS block_trx_query, c.trx_mysql_thread_id AS block_trx_mysql_tread_id
FROM information_schema.INNODB_LOCK_WAITS a
LEFT JOIN information_schema.INNODB_TRX b ON a.requesting_trx_id = b.trx_id
LEFT JOIN information_schema.INNODB_TRX c ON a.blocking_trx_id = c.trx_id
LEFT JOIN information_schema.PROCESSLIST d ON c.trx_mysql_thread_id = d.id
LEFT JOIN information_schema.PROCESSLIST e ON b.trx_mysql_thread_id = e.id
ORDER BY a.requesting_trx_id;

慢sql:
https://blog.csdn.net/jy02268879/article/details/108753273

最后

以上就是心灵美咖啡豆为你收集整理的mysql问题排查的各种命令的全部内容,希望文章能够帮你解决mysql问题排查的各种命令所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部