Performance Schema咋用
发布时间:2021-12-27 06:21:02 所属栏目:MySql教程 来源:互联网
导读:这篇文章将为大家详细讲解有关Performance Schema怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 Performance Schema简介 Oracle DBA都应该知道 Oracle中提供了大量的视图供DBA们排查问题使用,并且有等待事件帮
这篇文章将为大家详细讲解有关Performance Schema怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 Performance Schema简介 Oracle DBA都应该知道 Oracle中提供了大量的视图供DBA们排查问题使用,并且有等待事件帮助大家快速定位问题属于哪一类。MySQL 中也有Performance Schema帮助大家去分析排查问题,并且在5.7中增加了Sys Schema,将Performance Schema和information_schema的信息格式化后,供大家更方便的分析问题。 这里先介绍先Performance Schema的使用方式,便于后面大家更好的去使用Sys Schema。 Performance Schema开启方式 设置instruments及consumers开启 开启performance_schema=on之后我们还需要进行设置instruments及consumers instruments通俗讲就是监控项可以通过setup_instruments表设置需要开启对哪些项监控进行统计 consumers就是控制是否将监控到的结果进行记录 UPDATE setup_instruments SET ENABLED = 'YES', TIMED = 'YES'; UPDATE setup_consumers SET ENABLED = 'YES'; 如果不开启instruments和consumers则相应的事件检测则不能使用,也就不能收集相应的等待事件和性能的统计。 当然我们也可以单独设置某一个instruments的开启和关闭 UPDATE setup_instruments SET ENABLED = 'NO' WHERE NAME = 'wait/io/file/sql/binlog'; 为了防止重启后恢复默认配置可以添加到配置文件中设置 performance-schema-instrument='instrument_name=value' performance-schema-consumer-consumer_name=value instrument_name和consumer_name 可以通过查询setup_instruments和setup_consumers;查看 setup_consumers中的层级关系 mysql> select * from setup_consumers; +--------------------------------+---------+ | NAME | ENABLED | +--------------------------------+---------+ | events_stages_current | YES | | events_stages_history | YES | | events_stages_history_long | YES | | events_statements_current | YES | | events_statements_history | YES | | events_statements_history_long | YES | | events_waits_current | YES | | events_waits_history | YES | | events_waits_history_long | YES | | global_instrumentation | YES | | thread_instrumentation | YES | | statements_digest | YES | +--------------------------------+---------+ 12 rows in set (0.00 sec) setup_consumers中的事件表有层级之分 ,我们可以通过上面看到有 global、thread、current、history、history_long,他们之间的层级如下: 这里的history、history_long可以通过参数设置大小,因为是内存表,如果太大会占用很多内存。 setup_instruments中的类型 mysql> select name,count(*) from setup_instruments group by left(name,5); +---------------------------------+----------+ | name | count(*) | +---------------------------------+----------+ | idle | 1 | | stage/sql/After create | 108 | | statement/sql/select | 168 | | wait/synch/mutex/sql/PAGE::lock | 279 | +---------------------------------+----------+ 4 rows in set (0.00 sec) 我们可以看到setup_instruments中的类型有四种(5.6版本)。 具体的解释大家可以在官网中查看: https://dev.mysql.com/doc/refman/5.6/en/performance-schema-instrument-naming.html 简单使用介绍 简单介绍几个语句用于排查SQL语句的效率 查看哪些索引没有被使用过 SELECT OBJECT_SCHEMA, OBJECT_NAME, INDEX_NAME FROM table_io_waits_summary_by_index_usage WHERE INDEX_NAME IS NOT NULL AND COUNT_STAR = 0 AND OBJECT_SCHEMA <> 'mysql' ORDER BY OBJECT_SCHEMA,OBJECT_NAME; <ul class="list-paddingleft-2" font-size:16px;white-space:normal;background-color:#FFFFFF;box-sizing:border-box !important;"> 查看SQL语句在哪个阶段消耗最大 SELECT eshl.event_name, sql_text, eshl.timer_wait/1000000000000 w_s FROM performance_schema.events_stages_history_long eshl JOIN performance_schema.events_statements_history_long esthl ON (eshl.nesting_event_id = esthl.event_id) WHERE eshl.timer_wait > 1*10000000000G 关于“Performance Schema怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |