zoukankan      html  css  js  c++  java
  • MySQL系统库作用:performance_schema,sys,information_schema,mysql

    对系统库的管理维护是是 DBA 的职责。
    【performance_schema】
    性能监控和状态信息。包括统计最近执行了哪些语句,在执行过程的每个阶段都花费了多长时间,内存的使用情况等等信息。
    按照不同的数据库对象进行分组、按照不同的事件类型进行分组,或者按照事件 类型分组之后,再进一步按照账号、主机、程序、线程、用户等进行细分。
    语句事件记录表:记录语句事件信息的表,包括:
    events_statements_current(当前语句事件表)、events_statements_history(历 史语句事件表)、events_statements_history_long(长语句历史事件表)以及一 些 summary 表(聚合后的摘要表)。其中,summary 表还可以根据账号(account)、 主机(host)、程 序(program)、线 程(thread)、用 户(user)和全局(global) 再进行细分。
    show tables like 'events_statement%';
    show tables like 'events_wait%';                等待事件记录表:与语句事件记录表类似。
    show tables like 'events_stage%';             阶段事件记录表:记录语句执行阶段事件的表,与语句事件记录表类似。
    show tables like 'events_transaction%';    事务事件记录表:记录与事务相关的事件的表,与语句事件记录表类似。
    show tables like '%file%';                     监视文件系统层调用的表:
    show tables like '%memory%';            监视内存使用的表:
    show tables like '%setup%';                动态对 performance_schema 进行配置的配置表

    update setup_instruments set ENABLEd = 'YES', TIMED = 'YES' WHERE name like 'wait%';             -- 修改配置表,指定收集哪些性能指标
    update setup_consumers set ENABLEd = 'YES', TIMED = 'YES' WHERE name like 'wait%';              -- 修改配置表,指定哪些表打开性能数据收集,比如events_transactions_history事务历史表

    select * from 1; -- 会报1064错误
    select thread_id
    ,EVENT_ID
    ,SQL_TEXT as '错误sql'
    ,MYSQL_ERRNO as '错误号'
    ,MESSAGE_TEXT as '错误信息'
    ,FROM_UNIXTIME(TIMER_START, '%Y-%m-%d %H:%i:%S') AS '开始执行时间'
    ,FROM_UNIXTIME(TIMER_END, '%Y-%m-%d %H:%i:%S') AS '结束执行时间'
    ,FROM_UNIXTIME(TIMER_WAIT, '%Y-%m-%d %H:%i:%S') AS 'wait等待时间'
    from events_statements_history WHERE MYSQL_ERRNO = 1064 order by EVENT_ID desc;        -- 查看1064报错的sql语句执行历史记录。   SQL以G结尾,代表列转行显示结果集
    【sys】
    这个数据库主要是通过视图的形式把 information_schema 和 performance_schema 结合起来,让程序员可以更方便的了解 MySQL 服务器的一些性能信息。
    这个库的表都是双份,两个表名的区别是另一个前缀是"x$",例如:代表按照主机进行汇总统计的文件 I/O 性能数据, 两个视图访问的数据源是相同的:
    host_summary_by_file_io 该视图显示的是相关数值经过单位换算后的数据(单位是毫秒、秒、分钟、小时、 天等),
    x$host_summary_by_file_io 该视图带“x$”前缀的视图显示的是原始的数据。

    查看慢 SQL 语句
    call sys.ps_setup_enable_instrument('wait');         启用与等待事件相关功能
    call sys.ps_setup_enable_consumer('wait');          启用与等待事件相关功能
    select sleep(30);                                                     模拟睡眠30秒

    select * from session where command = 'query' and conn_id != connection_id()G        在模拟睡眠30秒未结束的时候,使用该SQL查询可以查到current_statement的值为select_sleep状态的SQL正在执行了几秒。

    select * from schema_table_statistics_with_bufferG;                      查询表的增、删、改、查数据量和 I/O 耗时统计
    SELECT * FROM `session`;                                                             查看当前会话信息


    【information_schema】
    这个数据库保存着 MySQL 服务器维护的所有其他数据库的信息:表、视图、触发器、列、索引等元数据。
    performance_schema=ON|OFF 在 my.cnf 中进行配置performance_schema是否启用,mysql5.7默认启用这个存储引擎
    INFORMATION_SCHEMA.ENGINES 表或 show engines; 语句都可以查看PERFORMANCE_SCHEMA是support = YES,才算当前mysql版本支持这个数据库实例。


    【mysql】
    这个是数据库核心,它存储了 MySQL 的用户账户和权限信息,一些存储过程、 事件的定义信息,一些运行过程中产生的日志信息,一些帮助信息以及时区信息等。
    SELECT * FROM innodb_index_stats;      索引。这个表很重要,为什么有些SQL明明加了索引查询的时候却没有使用索引,就是因为这个表的一些数据使mysql判断出一些查询成本而导致的。
    SELECT * FROM innodb_table_stats;       表最后更新时间、行数、索引数等

    支付宝扫一扫,为女程序员打赏!
    作者:梦幻朵颜
    版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    为什么利用多个域名来存储网站资源会更有效?
    事件绑定和普通事件的区别
    浏览器地址栏输入一个URL后回车,将会发生的事情
    JS数据类型及数据转换
    JS中的NaN和isNaN
    大数据的结构和特征
    系统重装后,如何重新找回hexo+github搭建的博客
    javascript操作符
    html头部
    html中链接的使用方法及介绍
  • 原文地址:https://www.cnblogs.com/zhuwenjoyce/p/14839670.html
Copyright © 2011-2022 走看看