首页 > 代码库 > 第13章 MySQL服务器的状态--高性能MySQL学习笔记

第13章 MySQL服务器的状态--高性能MySQL学习笔记

13.1 系统变量 -- 服务器配置变量

MySQL通过SHOW VARIABLES  SQL命令显示许多系统变量。

13.2 状态变量--SHOW STATUS

  SHOW STATUS 命令会在一个由两列(名称/值)组成的表格里显示服务器状态变量。这些变量都是只读的。

  SHOW STATUS默认显示会话变量,SHOW GLOBAL STATUS显示全局变量。

  也可以从INFORMATION_SCHEMA.GLOBAL_STATUS和INFORMATION_SCHEMA.SESSION_STATUS表里取出。

  32位系统很多计数器会归零。64位很少出现。

  查看这些变量的最好办法是:在时长为几分钟的时间段里看它们改变了多少。

  下面简要介绍,所有变量还得看MySQL手册。

13.2.1 线程和链接统计信息

  Connections, Aborted_connects......

eg: 每秒创建线程数(Threads_created/Uptime)。如果这个值跟0没差太多,说明线程缓冲区太小。

13.2.2 二进制日志的状态

Binlog_cache_use 和Binlog_cache_disk_use状态变量可以显示二进制日志保存了多少个事务。

13.2.3 命令计数器

Com_*变量记录了已发出的每一种SQL或者C API命令的数目。

eg:Com_select记录SELECT语句的数目,

Com_change_db记录使用USE或者通过C API改变一条默认连接数据库的次数。

Com_admin_commands状态变量可能很大,它不仅记录管理命令的数目,也记录发给MySQL实例的ping请求数量。

Questions记录了服务器受到的查询和命令的总数。因为缓存等因素,Com_*变量的总数并不完全相等。

13.2.4临时文件和表

查看记录MySQL创建临时表和文件次数的变量:

mysql> SHOW GLOBAL STATUS LIKE ‘Created_tmp%‘;

13.2.5 Handler操作

Handler API是MySQL与存储引擎之间的接口。Handler_*变量记录了Handler的操作次数。

研读Handler_*变量可以让你看清楚服务器做得最多的是哪几种工作。

13.2.6 MyISAM索引键缓冲区

Key_*变量包含了MyISAM索引键缓冲区的度量值和计数器。

13.2.2文件描述符

Open_*变量。

如果主要使用MyISAM引擎,那查看文件描述符的统计信息就很重要。

13.2.8 查询缓存

通过Qcache_*状态变量来检查查询缓存。

13.2.9 各种类型的SELECT

Select_*变量记录了各种类型SELECT查询的次数。

Select_range:一种联接的数目,该联接在第一个表的索引的指定范围内做扫描。

Select_scan:对第一个表做全表扫描的联接数目。

Select_full_range_join:....

Select_range_check:.这种查询计划代价很高。

Select_full_join:很糟糕。