mysql管理----状态参数释义

转载 2013年12月05日 15:05:13

下面是数据库MySQL优化的一些步骤

mysqllogo

一、通过show status和应用特点了解各种SQL的执行频率

通过SHOW STATUS可以提供服务器状态信息,也可以使用mysqladmin extended-status命令获得。SHOW STATUS可以根据需要显示session级别的统计结果和global级别的统计结果。
以下几个参数对Myisam和Innodb存储引擎都计数:
1.Com_select  执行select操作的次数,一次查询只累加1;
2.Com_insert 执行insert操作的次数,对于批量插入的insert操作,只累加一次;
3.Com_update 执行update操作的次数;
4.Com_delete 执行delete操作的次数;

以下几个参数是针对Innodb存储引擎计数的,累加的算法也略有不同:
1.       Innodb_rows_read select查询返回的行数;
2.       Innodb_rows_inserted执行Insert操作插入的行数;
3.       Innodb_rows_updated 执行update操作更新的行数;
4.       Innodb_rows_deleted 执行delete操作删除的行数;
通过以上几个参数,可以很容易的了解当前数据库的应用是以插入更新为主还是以查询操作为主,以及各种类型的SQL大致的执行比例是多少。对于更新操作的计数,是对执行次数的计数,不论提交还是回滚都会累加。

对于事务型的应用,通过Com_commit和Com_rollback可以了解事务提交和回滚的情况,对于回滚操作非常频繁的数据库,可能意味着应用编写存在问题。
此外,以下几个参数便于我们了解数据库的基本情况:
1.Connections 试图连接Mysql服务器的次数
2.Uptime    服务器工作时间
3.Slow_queries 慢查询的次数

二、定位执行效率较低的SQL语句
可以通过以下两种方式定位执行效率较低的SQL语句:
1.可以通过慢查询日志定位那些执行效率较低的sql语句,用–log-slow-queries[=file_name]选项启动时,mysqld写一个包含所有执行时间超过long_query_time秒的SQL语句的日志文件。可以链接到管理维护中的相关章节。

2.慢查询日志在查询结束以后才纪录,所以在应用反映执行效率出现问题的时候查询慢查询日志并不能定位问题,可以使用show processlist命令查看当前MySQL在进行的线程,包括线程的状态,是否锁表等等,可以实时的查看SQL执行情况,同时对一些锁表操作进行优化。

三、通过EXPLAIN分析低效SQL的执行计划
通过以上步骤查询到效率低的SQL后,我们可以通过explain或者desc 获取MySQL如何执行SELECT语句的信息,包括select语句执行过程表如何连接和连接的次序。
explain可以知道什么时候必须为表加入索引以得到一个使用索引来寻找记录的更快的SELECT。
 
mysql> explain select sum(moneys) from sales a,companys b where a.company_id = b.id and a.year = 2006;
+—————-+———-+———–+—————-+—————-+———-+———–+—————-+
| select_type   | table | type  | possible_keys| key            | key_len   | rows  | Extra     |
+—————-+———-+———–+—————-+—————-+———-+———–+—————-+
| SIMPLE    | b     | index | PRIMARY   | PRIMARY   | 4     |    1  | Using index   |
| SIMPLE    | a     | ALL   | NULL      | NULL      | NULL  |   12  | Using where   |
+—————-+———-+———–+—————-+—————-+———-+———–+—————-+
2 rows in set (0.02 sec)
 
select_type:select 类型
table:输出结果集的表
type:表示表的连接类型

①当表中仅有一行是type的值为system是最佳的连接类型;

②当select操作中使用索引进行表连接时type的值为ref;

③当select的表连接没有使用索引时,经常会看到type的值为ALL,表示对该表进行了全表扫描,这时需要考虑通过创建索引来提高表连接的效率。

possible_keys:表示查询时,可以使用的索引列.
key:表示使用的索引
key_len:索引长度
rows:扫描范围
Extra:执行情况的说明和描述
 
四、确定问题,并采取相应的优化措施
经过以上步骤,基本可以确认问题出现的原因,可以根据情况采取相应的措施,进行优化提高执行的效率。
例如上面的例子,我们确认是对a表的全表扫描导致效率的不理想,我们对a表的year字段创建了索引,查询需要扫描的行数明显较少。
 
mysql> explain select sum(moneys) from sales a,companys b where a.company_id = b.id and a.year = 2006;
+—————-+———-+———–+—————-+—————-+———-+———–+—————-+
| select_type   | table | type  | possible_keys| key            | key_len   | rows  | Extra     |
+—————-+———-+———–+—————-+—————-+———-+———–+—————-+
| SIMPLE    | b     | index | PRIMARY   | PRIMARY   | 4     |    1  | Using index   |
| SIMPLE    | a     | ref       | year      | year      | 4     |    3  | Using where   |
+—————-+———-+———–+—————-+—————-+———-+———–+—————-+
2 rows in set (0.02 sec)

转载自:http://www.jfox.info/shu-ju-ku-MySQL-you-hua-de-yi-xie-bu-zhou

在Erlang程序里处理状态

(原文见我的透明思考)从题外话说起:据我亲身经历,很多令人郁结的程序员最大的问题不是不熟悉语 言和类库,不是不了解算法,不是不会用工具,而是对程序里的信息流没有概念——弄不清哪些信息应该在什么地方、信...
  • gigix
  • gigix
  • 2007年12月07日 22:10
  • 13134

CXO解释

首席营运官【COO】 chief Operation officer 首席品牌官【CBO】 chief brand officer 首席文化官【CCO】 Chief Cultural Officer ...
  • iwaterstone
  • iwaterstone
  • 2008年03月15日 11:33
  • 270

窗口状态参数

窗口状态参数 : SW_HIDE 隐藏窗口并通过启动到另一个窗口。  SW_MINIMIZE 最小化指定的窗口和激活在系统的顶级窗口列表。  SW_RESTORE 激活并显示窗口。 如果窗口处于...
  • zdlxml
  • zdlxml
  • 2017年01月03日 14:12
  • 126

《软件研发成本度量规范释义》(第2版)

概述: 《软件研发成本度量规范释义》第2版(简称《释义》)一书共分为三章,包含了释义的编制说明、行标主要内容的释义以及标准的应用示例。第1章介绍了行标释义编写的背景、必要性和撰写原则。第2章是全书的重...
  • kexinshendu
  • kexinshendu
  • 2017年07月21日 11:46
  • 246

MySql管理的个人经验

当前一般用户的开发环境多是Windows或Linux,用户可以到http://www.mysql.com下载相关版本进行安装,在 windows中MySql以服务形式存在,在使用前应确保此服务已经启动...
  • sinat_36394053
  • sinat_36394053
  • 2016年10月21日 14:43
  • 299

问佛陀情为何物

如今很多人的爱是一种占有,有许多实用主义的成分——对方能让自己快乐,就跟他朝朝暮暮在一起;如果他给自己带来痛苦,则恨不得灭之而后快。这种爱,实际上就是痛苦之因。 与这种自私自利的爱相比,佛教的爱是对一...
  • liuqiaoying_lqy
  • liuqiaoying_lqy
  • 2013年12月16日 11:31
  • 1072

mysql管理常用操作

转自:http://blog.sina.com.cn/s/blog_596dc5a30100b13v.html 经常要用到mysql管理相关操作,老记不住,转这篇文章,备忘! ...
  • aman1111
  • aman1111
  • 2016年06月21日 13:03
  • 636

linux下mysql基本管理命令

1、MySQL环境     使用MySQL客户端命令工具"mysql"可以连接并登录到MySql环境,在带有提示符"mysql>"交互式命令环境中进行操作。在该操作环境中,输入的每一条数据库管理命...
  • u013242305
  • u013242305
  • 2014年12月27日 19:40
  • 319

PyCharm创建.py自动添加文件头注释

创建.py文件时 顺便自动添加作者、时间、文件名信息……mac系统打开编辑器添加以下代码:#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time ...
  • qq_36482772
  • qq_36482772
  • 2017年03月28日 01:13
  • 1768

岳麓书院对联及释义

1、岳麓书院大门楹联:      惟楚有材;于斯为盛。 横批:岳麓书院   注:此联大意是:楚地有人才,且在此地会聚。上联是清代嘉庆年间任岳麓书院院长的袁名曜(岘冈)所出,语出《左传•襄公二十六...
  • lanchunhui
  • lanchunhui
  • 2016年08月27日 18:52
  • 725
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql管理----状态参数释义
举报原因:
原因补充:

(最多只允许输入30个字)