加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

mysql 5.7中全新的 mysql sys schema

发布时间:2022-03-21 12:39:19 所属栏目:编程 来源:互联网
导读:mysql 5.7中崭新的 mysql sys schema 以下内容都是MySQL 5.7的新功能 一、 Performance Schema的改进 1、元数据库锁 select * from performance_schema.metadata_locks; 通过该表可以看到: a)、哪些会话拥有元数据锁; b)、哪些会话正在等待元数据锁; c)
    mysql 5.7中崭新的 mysql sys schema
 
    以下内容都是MySQL 5.7的新功能
    一、 Performance Schema的改进
    1、元数据库锁
    select * from performance_schema.metadata_locks;
    通过该表可以看到:
    a)、哪些会话拥有元数据锁;
    b)、哪些会话正在等待元数据锁;
    c)、哪些请求由于死锁被杀掉,或者锁等待超时而被丢弃。
   
    2、 查看未提交事务
                     
    从mysql 5.7开始,新增events_transactions_current表,通过该表查看当前线上的事务的状态,如果线上数据库遇到undo log大量增长,数据库性能急剧下降,可以通过该表查看当前是否存在处于未提交状态的事务。如果发现的确有大量的事务的state处于active状态,这时可以确定数据库的事务未提交。
    mysql 5.7中全新的 mysql sys schema
    二、SYS库的介绍
   
    performation schema使用起来不方便,mysql 5.7用sys库来解决这个问题。
    mysql sys库本身不采集和存储什么信息,而是将performance schema和infomation schema的数据以更加容易理解的方式总结归档出的视图。
    在sys库中,没有x$前缀的视图提供了更加友好且易读的数据;x$前缀的视图提供了原始数据,需要加工才好看。
 
    三、重点视图与应用场景
    1、查看表访问量
    场景:查看每张表的读写次数
   
                         
 +--------------+----------------------+---------------+
| table_schema | table_name           | io_to_request |
+--------------+----------------------+---------------+
| oa_2016      | form_trigger_record  |         | oa_2016      | form_log             |         | oa_2016      | ctp_content_all      |         | oa_2016      | org_relationship     |
   
   
    2、冗余索引和未使用的索引
   
    通过sys库中的schema_index_statistics  和schema_redundant_indexes两个视图,可以看到哪些索引没有被使用过或者使用率低。
   
    3、表自增id监控
    场景:知道哪张表有自增主键,并且监控自增主键是否快要超过阈值
                     
(root@localhost)[sys]> ***************************        table_schema: oa_2016
          table_name: ctp_content_all
         column_name: id
           data_type:          column_type:            is_signed:          is_unsigned:            max_value:       auto_increment: auto_increment_ratio:
    
    4、 监控全表扫描的sql语句
    通过sys.statements_with_full_table_scans来看全表扫描的sql语句:
root@localhost)[sys]> ***************************                   query:                      db: oa_2016
              exec_count:            total_latency:      no_index_used_count: no_good_index_used_count:        no_index_used_pct:                rows_sent:            rows_examined:            rows_sent_avg:        rows_examined_avg:               first_seen:                last_seen:                   digest:
    通过上面可以看到,该sql语句总共执行了5次,有5次都没有使用索引,总共消耗了997.89 us。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读