新闻动态

MySQL 分析服务器状态

发布日期:2018-08-11 17:54 | 文章来源:互联网

操作执行

香港CN2服务器、企业级CN2 GIA双程专线高速回国T3机房香港、美国、韩国、海外物理服务器热销中!

获取服务器整体的性能状态

首先对一个数据库服务器进行性能优化需要先知道服务器当前主要的性能问题出现在哪里,在这点sqlserver也是类似,sqlserver首先会分析当前服务器的等待类型的情况。

我们可以使用showsession|globalstatus命令来获取想要的信息,默认是显示当前连接的所有统计参数值,还可以直接查询information_schema数据库中的session_status表。

showstatus;#或者使用useinformation_schema;select*fromSESSION_STATUS;

我当前的MySQL版本是5.6.21,总共查询出了341行参数。

这里有一篇文章详细分析了每一个参数值的所代表的意思:blog.sina.com.cn/s/blog_68baf43d0100vu2x.html

SQL操作计数

接下来我们主要分析里面的com_参数,com_参数各种SQL对数据库执行的操作。

showstatuslike'com_%';#或者使用useinformation_schema;select*fromSESSION_STATUSWHEREvariable_namelike'com_%';

各种SQL操作计数总共有142个,不同的版本结果不一样,接下来就来测试一下,表中的altertable的当前连接的操作次数为0,现在我修改一下表看看结果。

ALTERTABLEtestADDNameCHARNOTNULL;showstatuslike'com_%';

可以看到alter_table计数增加了1。

com_计数里面有几个比较重要的参数,其它的一些参数也经常用来做参考。

com_delete:执行delete操作的次数。

com_select:执行select操作的次数。

com_insert:执行insert操作的次数,对应批量插入操作无论里面循环多少次都只算一次。

com_update:执行update操作的次数。

com_commit:执行事务提交的次数。

com_rollback:执行事务回滚的次数。

上面的计数包括所有的存储引擎,有几个参数是单独针对innodb存储引擎,记录了read,inserted,updated,deleted每种操作的行数。

showstatuslike'innodb_rows%';#或者使用useinformation_schema;select*fromSESSION_STATUSWHEREvariable_namelike'innodb_rows%';

定位效率低的SQL语句

1.可以通过慢查询日志来定位,慢查询只能查询已经执行结束的语句,如果要查询当前正发生的问题无法做到,这个方法在后面一篇文章介绍mysql日志会详细介绍。

由于我将慢查询的时间设为0.01秒,所以超过这个值的都会记录下来,上面的截图就是慢查询日志里面的一条SQL操作记录,记录中记录了在什么时候执行的操作,执行操作的用户信息,执行花了0.19秒,锁花了0.001秒,返回了0行,查询了1行。

2.使用showprocesslist命令查询当前进行线程,该命令经常用来分析当前服务器的状况。

上图中有后四个字段需要理解,其中

command:记录了当前查询的一个状态,休眠(sleep),查询(query),连接(connect)。

Time:持续的时间,单位是秒,经常会使用这个值来做分析操作。

state:当前语句的状态,这个状态值很重要,这个状态值很多,大家可以去了解一下,上图就是等待表解锁。

info:记录操作语句

3.借助第三方监控工具

Tags:操作执行,MySQL 分析服务器状态

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部