怎样用Mysql show processlist 排查问题


怎样用Mysql show processlist 排查问题,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。mysql show full processlist 查看当前线程处理情况每次执行看到的结果应该都有变化,因为是实时的,所以我定义为:“事发现场”,每次 香港云主机执行就相当于现场的快照一般用到show processlistshow full processlist都是为了查看当前 mysql 是否有压力,都在跑什么语句,当前语句耗时多久了,有没有什么慢 SQL 正在执行之类的可以看到总共有多少链接数,哪些线程有问题(time是执行秒数,时间长的就应该多注意了),然后可以把有问题的线程 kill 掉,这样可以临时解决一些突发性的问题有时候一个快照可能看不出什么问题,那么可以频发的刷新试试show full processlist可以看到所有链接的情况,但是大多链接的 state 其实是 Sleep 的,这种的其实是空闲状态,没有太多查看价值我们要观察的是有问题的,所以可以进行过滤:这样就过滤出来哪些是正在干活的,然后按照消耗时间倒叙展示,排在最前面的,极大可能就是有问题的链接了,然后查看 info 一列,就能看到具体执行的什么 SQL 语句了,针对分析展示列解释:id– 线程ID,可以用:kill id;杀死一个线程,很有用db数据user– 用户host– 连库的主机IPcommand– 当前执行的命令,比如最常见的:Sleep,Query,Connect 等time– 消耗时间,单位秒,很有用state– 执行状态,比如:Sending data,Sorting for group,Creating tmp table,Locked等等,很有用,其他状态可以看看本文最后的参考文章info– 执行的SQL语句,很有用上面提到的 线程ID 是可以通过 kill 杀死的;所以上面基本上可以把有问题的执行语句找出来,然后就可以 kill 掉了,那么一个一个来 kill 么?在下一步我就不用说了吧,把拼接 kill 的执行结果跑一遍就搞定了这个有时候非常好用,谁用谁知道一些问题会导致连锁反应,而且不太好定位,有时候以为是慢查询,很可能是大多时间是在等在CPU、内存资源的释放,所以有时候同一个查询消耗的时间有时候差异很大总结了一些常见问题:CPU报警:很可能是 SQL 里面有较多的计算导致的连接数超高:很可能是有慢查询,然后导致很多的查询在排队,排查问题的时候可以看到”事发现场“类似的 SQL 语句一大片,那么有可能是没有索引或者索引不好使,可以用:explain分析一下 SQL 语句看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注开发云行业资讯频道,感谢您对开发云的支持。

相关推荐: 如何设置直播前添加或插入10秒广告

l勾选启用内置广告 l选择添加直播开始广告 l设置直播 香港云主机广告内容 1素材类型:支持文字广告,图像广告和视频广告。 2填写链接地址:一键点击进入网页进行浏览。 3网站地址:呈现官方网址。 4文字:插入文字诠释广告内容。 5播放时间:填入广告播放时长如直…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 08/14 07:55
Next 08/14 07:55

相关推荐