MySQL SYS数据库说明

MySQL SYS数据库说明

此以MySQL5.7说明,实际和8.0区别不大

 

Sys库所有的数据源来自:performance_schema。

目标是把performance_schema的把复杂度降低,让DBA能更好的阅读这个库里的内容。让DBA更快的了解DB的运行情况

 

Sys库下有两类视图

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

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

 

视图说明:

  1. host : 以IP分组相关的统计信息
  2. innodb : innodb buffer 相关信息
  3. io : 数据内不同维度展的IO相关的信息
  4. memory : 以IP,连接,用户,分配的类型分组及总的占用显示内存的使用
  5. metrics : DB的内部的统计值
  6. processlist : 线程相关的信息(包含内部线程及用户连接)
  7. ps_ : 没有工具统计的一些变量(没看出来存在的价值)
  8. schema : 表结构相关的信息,例如: 自增,索引, 表里的每个字段类型,等待的锁等等
  9. session : 用户连接相关的信息
  10. statement : 基于语句的统计信息(重点)
  11. statements_ : 出错的语句,进行全表扫描, 运行时间超长,排序相等(重点)
  12. user_ : 和host_开头的相似,只是以用户分组统计
  13. wait :  等待事件,比较专业,难看懂。
  14. waits : 以IP,用户分组统计出来的一些延迟事件,有一定的参考价值。

 

1、查看主机信息

select host, current_connections,statements from sys.host_summary;

2、执行最多的SQL

select * from sys.statement_analysis order by exec_count desc limit 2 \G

3、查看系统IO最多的文件(可对应到表)

select * from sys.io_global_by_file_by_bytes where file not regexp  '@@datadir/sys|@@datadir/mysql|@@datadir/performance_schema|@@datadir/ibdata1|@@basedir/share|@@datadir/auto.cnf|binlog|ibtmp1' order by total desc limit 10;

4、查看访问次数最多的表

select * from sys.statement_analysis order by exec_count desc limit 10 \G

5、查看哪些语句延迟厉害

select * from sys.statement_analysis order by avg_latency desc limit 1 \G

6、查看系统里未使用过的索引

select * from sys.schema_unused_indexes;

7、查看冗余索引

select table_schema,table_name,redundant_index_name,redundant_index_columns,dominant_index_name,dominant_index_columns from sys.schema_redundant_indexes;

8、查看使用磁盘临时表的SQL

select db, query, tmp_tables,tmp_disk_tables from sys.statement_analysis where tmp_tables>0 or tmp_disk_tables >0 order by(tmp_tables+tmp_disk_tables) desc limit 20;

9、查看占用最大buffer pool的表

select * from sys.innodb_buffer_stats_by_table order by pages desc limit 10 \G

10、按schema查看buffer pool占用情况

select * from sys.innodb_buffer_stats_by_schema;

11、查看线程分配内存情况

select b.user, current_count_used,current_allocated, current_avg_alloc, current_max_alloc,total_allocated,current_statement from sys.memory_by_thread_by_current_bytes a,sys.session b where a.thread_id = b.thd_id;

12、查看线程使用情况,包括内部的线程

select user, count(*) from sys.processlist group by user;

13、查看表自增ID使用情况

select * from sys.schema_auto_increment_columns limit 10;

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值