MYSQL的SYS数据库

MySQL的SYS数据库提供了一种简化的方式来查看和理解performance_schema中的数据,帮助DBA快速了解数据库运行状况。SYS库包含两种类型的表,分别用于人阅读和工具采集。通过sys_config等视图,可以获取如IP、用户、内存使用、IO、线程等统计信息,解决如资源使用、连接来源、SQL执行情况等问题。此外,通过各种汇总视图,可以分析资源消耗、IO热点、延迟语句等,对数据库性能进行深度监控和诊断。
摘要由CSDN通过智能技术生成

 

Sys库里的数据来源

 

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

 

Sys库下有两种表

字母开头: 适合人阅读,显示是格式化的数

x$开头 : 适合工具采集数据,原始类数据

 

每类表大概介绍

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语句是什么样?

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

5. 那个表的IO最多?

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

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

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

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

10. 每个库占用多少Buffer pool

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

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

 

 

mysql> select * from host_summary\G

*************************** 1. row***************************

                  host: localhost #从哪个服务器链接过来的 如果为null 表示内部链接

           statements: 203  这台服务器执行了多少语句

    statement_latency: 105.45 ms 这台服务器发来等待语句执行时间

 statement_avg_latency: 519.45 us 该服务器等待语句执行的平均时间

          table_scans: 7 该服务器扫描表的次数(非全表)

              file_ios: 795 该服务器i/o时间请求的次数

      file_io_latency: 27.43 ms  该服务器请求等待i/o的时间

  current_connections: 1 该服务器当前的连接数

    total_connections: 1 该服务器总db共链接多少次

         unique_users: 1  该服务器上有几个不同用户账户连接过来

       current_memory: 0 bytes 该服务器上当前链接等占用的内存

total_memory_allocated: 0 bytes 该服务器上的请求总共使用内存量

 

 mysql>select host,current_connections from host_summary;

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

| host      |current_connections |

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

| localhost |                   1 |

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

----------------------------------------------------------------------------------------------------

| host_summary 

#主机概要

host: 监听连接过的主机

statements 当前主机执行的语句总数

statement_latency 语句等待时间

statement_avg_latency 执行语句平均延迟时间

table_scans 表扫描次数

file_ios io时间总数

file_io_latency 文件io 延迟

current_connections 当前连接数

total_connections: 总连接数

unique_users: 改主机唯一用户数

current_memory: 当前账户分配的内存

total_memory_allocated: 该主机内存总数

------------------------------------------------------------------------------------------------------

| host_summary_by_file_io

host 主机

ios: io事件总数

io_latency io总的延迟时间

--------------------------------------------------------------------------------------------------------------------

 

| host_summary_by_file_io_type

host: 主机

event_name io事件名称

total: 该主机发生的事件

total_latency: 该主机发生io 时间总延迟时间

max_latency: 该主机io 事务中最大的延迟时间

-----------------------------------------------------------------------------------------------------------------------------

| host_summary_by_stages

host 主机

event_name stage event名称

total: stage event发生的总数

total_latency stage event总的延迟时间

avg_latency stage event 平均延迟时间

----------------------------------------------------------------------------------------------------------------

| host_summary_by_statement_latency

host: 主机

total: 这个主机的语句总数

total_latency: 这个主机总的延迟时间

max_latency: 主机最大的延迟时间

lock_latency: 等待锁的锁延迟时间

rows_sent:  该主机通过语句返回的总行数

rows_examined: 在存储引擎上通过语句返回的行数

rows_affected: 该主机通过语句影响的总行数

full_scans: 全表扫描的语句总数

--------------------------------------------------------------------------------------------------------------------------

| host_summary_by_statement_type

host: 主机

statement: 最后的语句时间名称

total:  sql语句总数

total_latency: sql语句总延迟数

max_latency: 最大的sql语句延迟数

lock_latency: 锁延迟总数

rows_sent: 语句返回的行总数

rows_examined: 通过存储引擎的sql语句的读取总行数

rows_affected: 语句影响的总行数

full_scans:  全表扫描的语句事件总数

----------------------------------------------------------------------------------------------------------------------------------------------------------

| innodb_buffer_stats_by_schema

每个库占用多少 buffer pool

object_schema: 数据库的名称

allocated:分配给当前数据库的总的字节数

data: 分配给当前数据的数据字节

pages: 分配给当前数据库的总页数

pages_hashed: 分配给当前数据库的hash页数

pages_old: 分配给当前数据库的旧页数

rows_cached: 当前数据库缓存的行数

------------------------------------------------------------------------------------------------------------------------

| innodb_buffer_stats_by_table

#那张表 占用最多的 buffer pool

select * from innodb_buffer_stats_by_table order bypages desc limit 10;

object_schema: 数据库的名称

object_name: 表名称

allocated: 分配给表的总字节数

data: 分配该表的数据字节数

pages: 分配给表的页数

pages_hashed: 分配给表的hash页数

pages_old: 分配给表的旧页数

rows_cached: 表的行缓存数

 

#那张表的io最多

select * from io_global_by_file_by_bytes limit 10\G

----------------------------------------------------------------------------------------------------------------

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值