MySQL中使用show status语句查询MySQL的性能参数
语法:
show status like [statement]
常用statement说明:
# 查询连接MySQL服务器的次数
# 查询MySQL服务器上线的时间
# 查询慢查询的次数
# 查询 查询 *** 作的次数
查看MySQL服务器配置信息 :
查看MySQL服务器运行的各种状态值 :
慢查询:
连接数:
key_buffer_size 是对MyISAM表性能影响最大的一个参数
临时表:
查看open table :
进程使用情况:
查询缓存(query cache) :
文件打开数(open_files) :
表锁情况 :
表扫描情况 :
查询吞吐量:
连接情况:
分析查询语句
mysql提供了explain语句和describe语句,进行分析查询语句
EXPLAIN的语法:
说明:
示例:
DESCRIBE语句
使用方法与EXPLAIN语句是一样的,并且分析结果也是一样的。
语法:
mysql中提高性能的最有效的方式:
1, 对数据表设计合理的索引。索引提供了高效访问数据的方法,并且加快了查询的速度。
使用索引查询几种特殊情况:
首先介绍下 pt-stalk,它是 Percona-Toolkit 工具包中的一个工具,说起 PT 工具包大家都不陌生,平时常用的 pt-query-digest、 pt-online-schema-change 等工具都是出自于这个工具包,这里就不多介绍了。
pt-stalk 的主要功能是在出现问题时收集 OS 及 MySQL 的诊断信息,这其中包括:
1. OS 层面的 CPU、IO、内存、磁盘、网络等信息;
2. MySQL 层面的行锁等待、会话连接、主从复制,状态参数等信息。
而且 pt-stalk 是一个 Shell脚本,对于我这种看不懂 perl 的人来说比较友好,脚本里面的监控逻辑与监控命令也可以拿来参考,用于构建自己的监控体系。
三、使用
接着我们来看下如何使用这个工具。
pt-stalk 通常以后台服务形式监控 MySQL 并等待触发条件,当触发条件时收集相关诊断数据。
触发条件相关的参数有以下几个:
function:
∘ 默认为 status,代表监控 SHOW GLOBAL STATUS 的输出;
∘ 也可以设置为 processlist,代表监控 show processlist 的输出;
variable:
∘ 默认为 Threads_running,代表 监控参数,根据上述监控输出指定具体的监控项;
threshold:
∘ 默认为 25,代表 监控阈值,监控参数超过阈值,则满足触发条件;
∘ 监控参数的值非数字时,需要配合 match 参数一起使用,如 processlist 的 state 列;
cycles:
∘ 默认为 5,表示连续观察到五次满足触发条件时,才触发收集;
连接参数:host、password、port、socket。
其他一些重要参数:
iterations:该参数指定 pt-stalk 在触发收集几次后退出,默认会一直运行。
run-time:触发收集后,该参数指定收集多长时间的数据,默认 30 秒。
sleep:该参数指定在触发收集后,sleep 多久后继续监控,默认 300 秒。
interval:指定状态参数的检查频率,判断是否需要触发收集,默认 1 秒。
dest:监控数据存放路径,默认为 /var/lib/pt-stalk。
retention-time :监控数据保留时长,默认 30 天。
daemonize:以后台服务运行,默认不开启。
log:后台运行日志,默认为 /var/log/pt-stalk.log。
collect:触发发生时收集诊断数据,默认开启。
∘ collect-gdb:收集 GDB 堆栈跟踪,需要 gdb 工具。
∘ collect-strace:收集跟踪数据,需要 strace 工具。
∘ collect-tcpdump:收集 tcpdump 数据,需要 tcpdump 工具。
一、区别1)show status -->questions是本次连接的请求数,flush status重置。2)show global status -->questions是本次MYSQL服务开启(或重置)到现在总请求数。二、简介一)Mysql show global status 各项指标的含义1)Aborted_clients指出由于某种原因客户程序不能正常关闭连接而导致失败的连接的数量。如果客户不在退出之前调整mysql_close()函数,wait_timeout或interactive_timeout的限制已经被超出,或者是客户端程序在传输的过程中被关闭,则这种情况会发生。2)Aborted_connects指出试图连接到MYSQL的失败的次数。这种情况在客户尝试用错误的密码进行连接时,没有权限进行连接时,为获得连接的数据包所花费的时间超过了connect_timeout限制的秒数,或数据包中没有包含正确的信息时,都会发生。3)Bytes_sent已经发送给所有客户端的字节数。4)Com_[statement] (以下所有以Com_开始的条目)用于每一种语句的这些变量中的一种。变量值表示这条语句被执行的次数。5)com_select,表示select查询语句被执行的次数。可以适当的对一些敏感数据,进行下面某些 *** 作的监控。比如删除语句delete /drop。二) show Status参数详解 1)Aborted_clients 由于客户端没有正确关闭连接导致客户端终止而中断的连接数。 2)Aborted_connects 试图连接到MySQL服务器而失败的连接数 。 3)Binlog_cache_disk_use使用临时二进制日志缓存但超过。4)binlog_cache_size值并使用临时文件来保存事务中的语句 的事务数量 。 5)Binlog_cache_use 使用临时二进制日志缓存的事务数量。6)Bytes_received 从所有客户端接收到的字节数7)Bytes_sent发送给所有客户端的字节数。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)