# MySQL 8.0 OCP 查漏补缺 -通过performance_schema和sys监控数据库

最近在考MySQL 8.0的OCP ,开个专题专门查漏补缺下

只是做备忘,有的概念只是一笔带过,具体可自行搜索





## 1. performance_schema

### 1.1 功能介绍

- 该数据库下的表基于PERFORMANCE_SCHEMA存储引擎
- 可以深入的查看数据库的相关活动状态
- - 正在运行的查询
- - I/O等待信息
- - 历史性能数据
    
    
### 1.2 表的分类
 

[image:993 size:orig]


 
- setup 配置监控项的表
- current events 记录当前事件的表
- history  记录历史事件数据的表
- summary 存放汇总信息的表
- instance 定义监控对象类型的表
- miscellaneous 其他不能被归类的表

### 1.3 setup表


[image:994 size:orig]


### 1.4 performance监控指标

[image:995 size:orig]

如上图所示,以/分隔层层递进来标识监控指标

[image:996 size:orig]

通过查询相关的event表可以看到具体事件,一般我们查询等待时间来排查问题


## 2. sys数据库

上面我们说的performance数据库的结果不易读,而sys数据库则是汇总了performance库来方便日常管理

里面的对象有三类
- 视图        查询视图来获取想要的信息
- 存储过程   协助DBA配置performance库以及生成诊断报表
- 函数        不同形式来查询performance库配置


### 2.1 常用的一些命令


```
SELECT * from user_summary\G
```

[image:997 size:orig]


```
SELECT * FROM user_summary_by_statement_type \G
```

[image:998 size:orig]

[image:999 size:orig]

```
SELECT * FROM statements_with_temp_tables LIMIT 5\G;
```
[image:1000 size:orig]