查看原文
其他

专栏 | MySQL 5.7系列之sys schema(1) by吴炳锡

吴炳锡@知数堂 老叶茶馆 2023-03-10

作者:吴炳锡(知数堂培训联合创始人)

0、导读

MySQL 5.7引入了sys schema,有了它,我们排查分析一些问题时将更得心应手。sys schema里主要存储的是视图、存储过程、函数等。

视图:用于结果的汇总展示及配置持久化;

存储过程:用于对Performance schema的控制及收集;

函数:对于Performance schema的配置及数据格式化。


本文约1500字,阅读时间约8分钟。

1、sys schema数据来源

sys schema的数据主要源自performance_schema。其目标是把查询performance_schema的复杂度降低,让DBA能更好地利用这个库里的数据,更快地了解MySQL的运行情况。

2、查看sys库的版本

mysql> select * from sys.version;

+--------------+-----------------+

| sys_version | mysql_version |

+--------------+-----------------+

| 1.5.1            | 5.7.16-log        |

+--------------+-----------------+

3、sys schema里都有什么

  • 英文字母开头的,这种是适合人类常规阅读,显示结果是格式化后的数据,比如host_summary:

  • "x$"开头的,这种是适合工具采集数据,原始类数据,比如x$host_summary:


接下来看看sys schem可以支持查询哪些数据:

4、sys schema详细介绍

  • "sys_"开头的是schema配置表

    sys_config用于sys schema库的配置

  • 视图



视图名称作用
"host"开头以IP分组相关的统计信息
"innodb"开头innodb buffer及row lock相关信息
"io"开头数据内不同维度展的IO相关的信息
"memory"开头以IP,连接,用户,分配的类型分组及总的占用显示内存的使用
"metrics"开头DB的内部的统计值
"processlist"开头线程相关的信息(包含内部线程及用户连接)
"ps_"开头没有工具统计的一些变量(没看出来存在的价值)
"schema"开头表结构相关的信息,例如: 自增,索引, 表里的每个字段类型,等待的锁等等
"session"开头用户连接相关的信息
"statement"开头基于语句的统计信息(重点
"statements"开头出错的语句,进行全表扫描, 运行时间超长,排序相等(重点
"user_"开头


好了,本次先介绍到这里。后面我们将继续介绍sys schema的一些主要用途。

  • 哪个用户或者来自哪个IP的客户端使用了最多的资源;

  • 数据库连接来自哪里,以及这些连接对数据库的请求情况是怎样的;

  • 数据库中哪些SQL被频繁执行;

  • 哪个文件产生了最多的IO,读多,还是写的多;

  • 哪个表上的IO请求最多;

  • 哪个表被访问的最多;

  • 哪些语句延迟比较严重;

  • 哪些SQL语句使用了临时表,又有哪些用到了磁盘临时表;

  • 哪个表占用了最多的buffer pool;

  • 每个库(database)占用多少buffer pool;

  • 每个连接分配多少内存;

  • MySQL内部有多个线程在运行;

  • 等等其他...




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存