标签:MYSQL/数据库/性能优化/调优

概述

文章简单介绍了通过一些查询命令分析当前服务器的状态。

目录

步骤

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

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

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

show  status;
#或者使用
use information_schema;
select * from SESSION_STATUS;

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

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

SQL操作计数

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

show  status like 'com_%';
#或者使用
use information_schema;
select * from SESSION_STATUS WHERE variable_name like 'com_%';

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

ALTER TABLE test ADD Name CHAR(10) NOT NULL;

show  status like '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每种操作的行数。

show  status like 'innodb_rows%';
#或者使用
use information_schema;
select * from SESSION_STATUS WHERE variable_name like 'innodb_rows%';

定位效率低的SQL语句

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

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

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

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

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

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

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

info:记录操作语句

3.借助第三方监控工具

总结

文章的知识点涉及的内容其实很多,这里只是简单的写了一下,包括服务器里的很多状态都是很重要的,文章只是单单拿出了SQL操作的计数来讲,其它的一些包括connections,slow_queries,innodb_data_,innodb_buffer_pool_等等都是非常有用的一些计数,由于太多这里就没有全部拿出来分析,文章中也给出了一个连接介绍了其它的一些计数的含义。

 

备注:

作者:pursuer.chen

博客:http://www.cnblogs.com/chenmh

本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接,否则保留追究责任的权利。

《欢迎交流讨论》

---恢复内容结束---

MySQL 分析服务器状态的更多相关文章

  1. MySQL优化:使用show status查看MySQL服务器状态信息

    在网站开发过程中,有些时候我们需要了解MySQL的服务器状态信息,譬如当前MySQL启动后的运行时间,当前MySQL的客户端会话连接数,当前MySQL服务器执行的慢查询数,当前MySQL执行了多少SE ...

  2. 使用 SHOW STATUS 查看mysql 服务器状态信息

    在LAMP架构的网站开发过程中,有些时候我们需要了解MySQL的服务器状态信息,譬如当前MySQL启动后的运行时间,当前MySQL的客户端会话连接数,当前MySQL服务器执行的慢查询数,当前MySQL ...

  3. 【MySQL优化】使用show status查看MySQL服务器状态信息

    在网站开发过程中,有些时候我们需要了解MySQL的服务器状态信息,譬如当前MySQL启动后的运行时间,当前MySQL的客户端会话连接数,当前MySQL服务器执行的慢查询数,当前MySQL执行了多少SE ...

  4. MySQL执行SHOW STATUS查询服务器状态状态之Handler_read_* 详解

    在MySQL里,我们一般使用SHOW STATUS查询服务器状态,语法一般来说如下: SHOW [GLOBAL | SESSION] STATUS [LIKE ‘pattern’ | WHERE ex ...

  5. 2-18,19 搭建MySQL主从服务器并并通过mysql-proxy实现读写分离

    MySQL主从服务器 实现方式: MySQL  REPLICATION Replication可以实现将数据从一台数据库服务器(master)复制到一台或多台数据库服务器(slave) 默认情况下这种 ...

  6. 如何监控MYSQL消耗服务器资源

    http://258xiaolei-sina-com.iteye.com/blog/764665 启动Mysql时加参数--log-slow-queries来记录执行时间超过long_query_ti ...

  7. zabbix利用percona-toolkit工具监控Mysql主从同步状态

    一.下载percona-toolkit工具包 percona-toolkit是一组高级命令行工具的集合,可以查看当前服务的摘要信息,磁盘检测,分析慢查询日志,查找重复索引,实现表同步等等. [root ...

  8. Mysql 连接sleep状态问题解决。

    昨日mysql总是出问题,各种程序在运行时,出现了连接已断开的问题.  导致此问题的原因: 1. 最大连接数 2. 网络问题 3. mysql服务器资源问题 然而,上面最常见的3个问题都没有出现.后来 ...

  9. MySQL数据库服务器的架设

    导读 MySQL数据库是Linux操作系统上用得最多的数据库系统,它可以非常方便的与其它服务器集成在一起,如Apache.Vsftpd.Postfix等.下面介绍RHEL 6平台MySQL数据库服务器 ...

随机推荐

  1. Jquery判断变量是否为空

    var aaa=''; if(aaa) { //aaa不为空也不是不可识别对象时执行 } else { //aaa为空或不可识别时执行 } aaa必须是变量,对象的属性好像是不行,

  2. Hibernate jpa 在实体类中对于时间的注解

    在时间类型DATE 属性上添加一个 @Temporal(TemporalType.DATE)(精确到年月日)@Temporal(TemporalType.TIME)(精确到时分秒)@Temporal( ...

  3. Zookeeper操作

    Zookeeper操作 注意搭建: 1.集群规模不小于3个节点 2.服务器之间系统时间要保持一致 1.搭建步骤: 1.解压安装包 2.设置zookeeper环境变量 3.修改配置文件————zoo.c ...

  4. Sublime Text 3 快捷键

    选择类Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本.Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑.举个栗子:快速选中并更改所有相同的变量名.函数名等 ...

  5. BFS_最短路径

    已知若干个城市的地图,求从一个城市到另一个城市的路径,要求路径中经过的城市最少. #include<iostream> #include<cstring> using name ...

  6. Daily Scrum Meeting ——SeventhDay(Beta)12.15

    一.Daily Scrum Meeting照片 二.Burndown Chart 想做的太多,冲刺仍在继续 三.项目进展(check-in) 1.完成了登录注册剩下的所有界面 2.更改通知详情和活动详 ...

  7. 2016-2-10 tomcat基础学习

    安装tomcat服务器(1)配置 JAVA_HOME指向你的jdk主目录 也可以在startup.bat文件中设置JAVA_HOME环境变量. 首次使用JAVA_HOME前设置即可.set JAVA_ ...

  8. 【原】iOS学习之三种拨打电话方式的比较

    拨打电话小编从网上找到三种,在这里做一些总结和比较 1.基本使用 NSString *str = [[NSMutableString alloc] initWithFormat:@"tel: ...

  9. 采用Lambda表达式快速实现实体模型对象转换到DTO

    在项目中,采用code first时建立的模型对象不能直接用于数据传输,需要从新根据需求建立Dto对象 为什么需要建立Dto对象呢? DTO即数据传输对象.之前不明白有些框架中为什么要专门定义DTO来 ...

  10. BAT 技术团队博客

    1. 美团技术团队博客:  地址: http://tech.meituan.com/ 2. 腾讯社交用户体验设计(ISUX) 地址:http://isux.tencent.com/ 3. 京东设计中心 ...