前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学习MySQL 5.7的Sys库使用(一)

学习MySQL 5.7的Sys库使用(一)

作者头像
wubx
发布2019-04-24 18:55:15
1.3K0
发布2019-04-24 18:55:15
举报
文章被收录于专栏:MySQLBeginnerMySQLBeginner

学习MySQL 5.7的Sys库使用(上)

MySQL 5.7 引入sys库 用于帮助DBA分析一些问题。 sys库里面就是一些存储过程,视图,函数等。

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

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

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

今天主要先讲解视图相关的内容。其它内容看大家需求。

Sys库里的数据来源

Sys库所有的数据源来自:performance_schema 。目标是把Performance_schema的把复杂度降低,让DBA能更好的阅读这个库里的内容。让DBA更快的了解DB的运行情况。

查看sys库的版本

select * from sys.version;

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

| sys_version | mysql_version |

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

| 1.5.1 | 5.7.14-log |

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

Sys库下有两种表

  • 字母开头 : 适合人阅读,显示是格式化的数
  • x$开头 : 适合工具采集数据,原始类数据

root@localhost [sys]>select host,statements, statement_latency,statement_avg_latency from host_summary;

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

| host | statements | statement_latency | statement_avg_latency |

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

| localhost | 92 | 72.24 ms | 785.21 us |

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

1 row in set (0.01 sec)

root@localhost [sys]>select host,statements, statement_latency,statement_avg_latency from x$host_summary;

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

| host | statements | statement_latency | statement_avg_latency |

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

| localhost | 91 | 63268768000 | 695261186.8132 |

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

1 row in set (0.01 sec)

接下来看看sys可以支持查看方向:

select substring_index(table_name,"_",1) ,count(*) from information_schema.tables where TABLE_SCHEMA='sys' and table_name not like 'x$%' group by substring_index(table_name,"_",1);

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

| substring_index(table_name,"_",1) | count(*) |

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

| host | 6 |

| innodb | 3 |

| io | 5 |

| latest | 1 |

| memory | 5 |

| metrics | 1 |

| processlist | 1 |

| ps | 1 |

| schema | 9 |

| session | 2 |

| statement | 1 |

| statements | 5 |

| sys | 1 |

| user | 6 |

| version | 1 |

| wait | 2 |

| waits | 3 |

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

17 rows in set (0.00 sec)

每类表大概介绍

sys_开头是库里的配置表:

sys_config用于sys schema库的配置

视图:

host : 以IP分组相关的统计信息

innodb : innodb buffer 相关信息

io : 数据内不同维度展的IO相关的信息

memory : 以IP,连接,用户,分配的类型分组及总的占用显示内存的使用

metrics : DB的内部的统计值

processlist : 线程相关的信息(包含内部线程及用户连接)

ps_ : 没有工具统计的一些变量(没看出来存在的价值)

schema : 表结构相关的信息,例如: 自增,索引, 表里的每个字段类型,等待的锁等等

session : 用户连接相关的信息

statement : 基于语句的统计信息(重店)

statements_ : 出错的语句,进行全表扫描, 运行时间超长,排序相等(重点)

user_ : 和host_开头的相似,只是以用户分组统计

wait : 等待事件,比较专业,难看懂。

waits : 以IP,用户分组统计出来的一些延迟事件,有一定的参考价值。

先介绍到这里,大家先有一个印象。

Sys库能做什么,那么我们先来看看以下的问题,对于数据库,你有没有以下的疑问?

1. 谁使用了最多的资源? 基于IP或是用户?

2. 大部分连接来自哪里及发送的SQL情况?

3. 机器执行多的SQL语句是什么样?

3. 哪个文件产生了最多的IO,它的IO模式是怎么样的?

4. 那个表的IO最多?

4. 哪张表被访问过最多?

5. 哪些语句延迟比较严重?

6. 哪些SQL语句使用了磁盘临时表

7. 哪张表占用了最多的buffer pool

8. 每个库占用多少Buffer pool

9. 每个连接分配多少内存?

10. MySQL内部现在有多个线程在运行?

...

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-11-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MySQLBeginner 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档