文档章节

mysql 执行状态分析 show processlist

藏劍丶
 藏劍丶
发布于 2015/12/17 11:43
字数 1026
阅读 11
收藏 0

 

执行状态分析

Sleep状态

通常代表资源未释放,如果是通过连接池,sleep状态应该恒定在一定数量范围内

实战范例:因前端数据输出时(特别是输出到用户终端)未及时关闭数据库连接,导致因网络连接速度产生大量sleep连接,在网速出现异常时,数据库too many connections挂死。

简单解读,数据查询和执行通常只需要不到0.01秒,而网络输出通常需要1秒左右甚至更长,原本数据连接在0.01秒即可释放,但是因为前端程序未执行close操作,直接输出结果,那么在结果未展现在用户桌面前,该数据库连接一直维持在sleep状态!

Waiting for net, reading from net, writing to net

偶尔出现无妨

如大量出现,迅速检查数据库到前端的网络连接状态和流量

案例:因外挂程序,内网数据库大量读取,内网使用的百兆交换迅速爆满,导致大量连接阻塞在waiting for net,数据库连接过多崩溃

Locked状态

有更新操作锁定

通常使用innodb可以很好的减少locked状态的产生,但是切记,更新操作要正确使用索引,即便是低频次更新操作也不能疏忽。如上影响结果集范例所示。

myisam的时代,locked是很多高并发应用的噩梦。所以mysql官方也开始倾向于推荐innodb

Copy to tmp table

索引及现有结构无法涵盖查询条件,才会建立一个临时表来满足查询要求,产生巨大的恐怖的i/o压力。

很可怕的搜索语句会导致这样的情况,如果是数据分析,或者半夜的周期数据清理任务,偶尔出现,可以允许。频繁出现务必优化之。

Copy to tmp table通常与连表查询有关,建议逐渐习惯不使用连表查询。

实战范例:

u 某社区数据库阻塞,求救,经查,其服务器存在多个数据库应用和网站,其中一个不常用的小网站数据库产生了一个恐怖的copy to tmp table操作,导致整个硬盘i/ocpu压力超载。Kill掉该操作一切恢复。

Sending data

Sending data并不是发送数据,别被这个名字所欺骗,这是从物理磁盘获取数据的进程,如果你的影响结果集较多,那么就需要从不同的磁盘碎片去抽取数据,

偶尔出现该状态连接无碍。

回到上面影响结果集的问题,一般而言,如果sending data连接过多,通常是某查询的影响结果集过大,也就是查询的索引项不够优化。

如果出现大量相似的SQL语句出现在show proesslist列表中,并且都处于sending data状态,优化查询索引,记住用影响结果集的思路去思考。

Storing result to query cache

出现这种状态,如果频繁出现,使用set profiling分析,如果存在资源开销在SQL整体开销的比例过大(即便是非常小的开销,看比例),则说明query cache碎片较多

使用flush query cache可即时清理,也可以做成定时任务

Query cache参数可适当酌情设置。

Freeing items

理论上这玩意不会出现很多。偶尔出现无碍

如果大量出现,内存,硬盘可能已经出现问题。比如硬盘满或损坏。

i/o压力过大时,也可能出现Free items执行时间较长的情况。

Sorting for …

Sending data类似,结果集过大,排序条件没有索引化,需要在内存里排序,甚至需要创建临时结构排序。

其他

还有很多状态,遇到了,去查查资料。基本上我们遇到其他状态的阻塞较少,所以不关心


本文转载自:http://www.cnblogs.com/huangye-dream/archive/2013/05/30/3108298.html

藏劍丶
粉丝 1
博文 68
码字总数 15764
作品 0
朝阳
程序员
私信 提问
处理MySQL数据库出现大量Locked的一个案例

MySQL在使用过程中遇到访问速度慢,或者无法响应这类的问题,解决方式基本都有定式,一般第一反应都会是登录到MySQL, show processlist看看当前连接状态。 虽说简单,但show processlist显示...

庆沉
2015/06/30
153
0
玩转processlist,高效追溯MySQL活跃连接数飙升根因

作者介绍 在运维MySQL时,经常遇到的一个问题就是活跃连接数飙升。一旦遇到这样的问题,都根据后台保存的processlist信息,或者连上MySQL环境,分析MySQL的连接情况。处理类似的故障多了,就...

刘世勇
2017/07/26
0
0
mysql卡住锁表 processlist explain

1.记一次order by desc limit导致的查询慢: explain分析一下这条语句: explain select a.id,a.quser,a.qshowtime,a.thumb,a.title,a.quid,qishu,announcedtype,qendtime ,(SELECT FROM WH......

linuxqwer
2016/09/13
0
0
cpu 100% mysql占用太多 优化mysql

转自:http://vickyzhang.blog.51cto.com/5930715/1913054 mysql实例cpu超过100%分析 当我们mysql数据库实例超过100%时,这种情况都是因sql性能问题导致,实例出现卡主现象: 1.原理,cpu消耗过...

君千殇520
2017/11/03
673
0
Mysql Processlist

processlist命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句。 CACTI# mysqladmin processlist; CACTI# mysql -e "show processlist" mysql> show processlist; 用 ......

ray2012
2012/12/16
134
0

没有更多内容

加载失败,请刷新页面

加载更多

parseint和isNaN用法

本文转载于:专业的前端网站➭parseint和isNaN用法 <!doctype html><html><head><meta charset="utf-8"><title>无标题文档</title></head><body><script> var a='12'; alert......

前端老手
50分钟前
7
0
Kylin 精确去重在用户行为分析中的妙用

作者:史少锋,Apache Kylin committer & PMC,2019/10/11 在上次文章《如何在 1 秒内做到大数据精准去重》中,我们介绍了 Apache Kylin 为什么要支持大数据集上的精确去重,以及基于 Bitmap...

ApacheKylin
今天
5
0
学习记录(二) es6基本语法(rest参数,模板化,axios模块,拦截器)

日常学习记录 模块化:把一个大文件分成多个小文件,按照一定规范进行拼接 es5写法: 导出:module.exports = 数据 导入:require("路径") /路径未添加后缀名时 //默认添加.js //把路径作为文件名...

Pole丶逐
今天
4
0
以程序员的角度怎么购买一台「性价比高的电视」

前俩天有小伙伴在我的文章下留言,说能否把 【国内电视机都介绍一下】,今天我已在TV端开发多年的程序员的角度。谈谈已程序员的角度如何购买一台性价比高的电视。 国内大的电视机品牌介绍 长...

我们都很努力着
今天
4
0
PhotoShop 色调:理解直方图/RGB通道信息

一、直方图:图表的形式,展示图像像素分布的情况 1.平均值:表示平均亮度 2.标准偏差值:表示亮度值范围内的中间值 3.像素: 表示用于计算直方图的像素总数 4.色阶:显示指针下面的区域亮度...

东方墨天
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部