千家信息网

怎样用Mysql show processlist 排查问题

发表于:2024-11-25 作者:千家信息网编辑
千家信息网最后更新 2024年11月25日,怎样用Mysql show processlist 排查问题,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。mysql s
千家信息网最后更新 2024年11月25日怎样用Mysql show processlist 排查问题

怎样用Mysql show processlist 排查问题,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

mysql show full processlist 查看当前线程处理情况

事发现场

每次执行看到的结果应该都有变化,因为是实时的,所以我定义为:"事发现场",每次执行就相当于现场的快照

一般用到 show processlistshow full processlist 都是为了查看当前 mysql 是否有压力,都在跑什么语句,当前语句耗时多久了,有没有什么慢 SQL 正在执行之类的

可以看到总共有多少链接数,哪些线程有问题(time是执行秒数,时间长的就应该多注意了),然后可以把有问题的线程 kill 掉,这样可以临时解决一些突发性的问题

有时候一个快照可能看不出什么问题,那么可以频发的刷新试试

问题排查

show full processlist 可以看到所有链接的情况,但是大多链接的 state 其实是 Sleep 的,这种的其实是空闲状态,没有太多查看价值

我们要观察的是有问题的,所以可以进行过滤:

-- 查询非 Sleep 状态的链接,按消耗时间倒序展示,自己加条件过滤select id, db, user, host, command, time, state, infofrom information_schema.processlistwhere command != 'Sleep'order by time desc

这样就过滤出来哪些是正在干活的,然后按照消耗时间倒叙展示,排在最前面的,极大可能就是有问题的链接了,然后查看 info 一列,就能看到具体执行的什么 SQL 语句了,针对分析

展示列解释:

  • id - 线程ID,可以用:kill id; 杀死一个线程,很有用

  • db - 数据库

  • user - 用户

  • host - 连库的主机IP

  • command - 当前执行的命令,比如最常见的:Sleep,Query,Connect 等

  • time - 消耗时间,单位秒,很有用

  • state - 执行状态,比如:Sending data,Sorting for group,Creating tmp table,Locked等等,很有用,其他状态可以看看本文最后的参考文章

  • info - 执行的SQL语句,很有用

kill 使用

上面提到的 线程ID 是可以通过 kill 杀死的;所以上面基本上可以把有问题的执行语句找出来,然后就可以 kill 掉了,那么一个一个来 kill 么?

-- 查询执行时间超过2分钟的线程,然后拼接成 kill 语句select concat('kill ', id, ';')from information_schema.processlistwhere command != 'Sleep'and time > 2*60order by time desc

在下一步我就不用说了吧,把拼接 kill 的执行结果跑一遍就搞定了

这个有时候非常好用,谁用谁知道

常见问题

一些问题会导致连锁反应,而且不太好定位,有时候以为是慢查询,很可能是大多时间是在等在CPU、内存资源的释放,所以有时候同一个查询消耗的时间有时候差异很大

总结了一些常见问题:

CPU报警:很可能是 SQL 里面有较多的计算导致的

连接数超高:很可能是有慢查询,然后导致很多的查询在排队,排查问题的时候可以看到"事发现场"类似的 SQL 语句一大片,那么有可能是没有索引或者索引不好使,可以用:explain 分析一下 SQL 语句看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

问题 语句 时间 线程 查询 有时候 链接 有用 状态 消耗 常见 常见问题 快照 情况 文章 正在 索引 结果 分析 帮助 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 栖霞管理系统软件开发哪家靠谱 软件开发企业软件行业进项抵扣 信息中心软件开发项目名称 日本谈大陆互联网科技 网络安全简短顺口溜四句 测试在软件开发过程中的作用 湖北中医药大学中医典海数据库 重庆进口软件代理服务器 移动3g路由器连接电信服务器 数据库生成bin文件 全旗网络安全自查总结 天启互娱网络技术有限公司 幼儿园网络安全环创作品 鼎捷软件用友软件开发多少钱 北大医信软件开发待遇 网络安全技术学校 鱼人服务器啥时候开的 网络安全漏洞扫描记录 服务器下载资源的速度慢 数据库原理求关系代数 关键信息基础网络安全攻击手段 在关系数据库中定义的逻辑结构 node的搜索数据库 旺希网络技术有限公司 数据库和数据表的各种笔记 电梯软件开发流程 域服务器 文件管理 密码 dell 服务器 数据库表太大怎么办 人工智能要不要学习数据库系统
0