首页 > 代码库 > 第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:很糟糕。