该系统使用pt-query-digest搜集慢查询日志,目前策略是每10分钟搜集分析一次。将数据存储在两张表中:global_query_review 和 global_query_review_history。
该系统使用anemometer将pt-query-digest 搜集的数据以web形式展现出来,方便查询分析。
表结构
1、global_query_review 表结构:

主要字段说明:
- checksum : 主键, 是按fingerprint算出来的hash值
- finger : 是每条sql语句的指纹,去掉了一些变化的值(同一类型的sql语句,条件值不一样在该表中只会存在一条记录)
- sample: 符合finger的一条sql示例
2、global_query_review_history表结构(由于表字段较多,后面省略了几十个统计字段,同Query_time_*字段)

主要字段说明:
- hostname_max : MySQL服务所在主机名称
- db_max: 数据库名称
- checksum : 同global_query_review表中的checksum,两张表通过该值关联
- sample : sql示例
- ts_min : 本次统计(每10分钟一次)该类型sql语句出现的最小时间
- ts_max: 本次统计(每10分钟一次)该类型sql语句出现的最大时间
- ts_cnt : 本次统计该sql语句出现的次数
- Query_time_sum : 本次统计该类型sql语句花费的总时间
- Query_time_min : 本次统计该类型sql语句执行最快的那个sql语句花费的时间
- Query_time_max: 本次统计该类型sql语句执行最慢的那个sql语句花费的时间
- Query_time_pct_95: 本次统计该类型sql语句执行时间位于95%分位的sql执行时间
- Query_time_stddev: 本次统计该类型sql语句执行时间标准差(统计学概念)
- Query_time_median: 本次统计该类型sql语句执行时间位于中位数位置的sql执行时间
- index_ratio:表示的是扫描的行数/返回的结果行数
Anemometer系统
1、主页面说明如下

2、点击特定checksum值进入的页面如下:

下面图形是该页面的中间部分:

[图片上传中。。。(6)]
网友评论