我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Performance Schema怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Performance Schema怎么用

这篇文章将为大家详细讲解有关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,他们之间的层级如下:

global_instrumentation

thread_instrumentation
  events_waits_current
    events_waits_history
    events_waits_history_long
  events_stages_current
    events_stages_history
    events_stages_history_long
  events_statements_current
    events_statements_history
    events_statements_history_long

statements_digest

也就是说,如果设置了global的才会去检查thread的有没有被设置,如果thread的设置了才会去检查current的有没有被设置,如果global的没有被设置则thread和current都不去检查,相应的信息也不会记录到对应的表中。 

如果global_instrumentation没有被设置则对应的表中都不会记录任何信息。

 
这里的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*10000000000\G

关于“Performance Schema怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Performance Schema怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何使用Performance Schema查看Profiling

小编给大家分享一下如何使用Performance Schema查看Profiling,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!SHOW PROFILE可以用来MySQL执行语句时候所使用的资源(诸如IO,上下文切换,C
2023-06-01

Hibernate schema怎么使用

本篇内容介绍了“Hibernate schema怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Hibernate schema如果你
2023-06-17

oracle的schema怎么使用

在Oracle中,Schema是一种逻辑容器,用于组织和管理数据库对象(如表、视图、索引等)。每个Schema都有一个唯一的名称,并且可以在一个数据库中创建多个Schema。要使用Oracle的Schema,首先需要创建一个Schema。
oracle的schema怎么使用
2024-04-09

怎么使用Performance监控前端性能

这篇文章主要介绍“怎么使用Performance监控前端性能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Performance监控前端性能”文章能帮助大家解决问题。Performance.
2023-06-17

Spring XML Schema扩展机制怎么用

这篇文章主要介绍Spring XML Schema扩展机制怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前言在当前Java生态,Spring算的上是最核心的框架,所有的开发组件想要得到大范围更便捷的使用,都要和
2023-06-15

Hibernate自动生成工具Schema怎么用

这篇文章主要介绍Hibernate自动生成工具Schema怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Hibernate Schema自动生成可以从你的映射文件使用一个Hibernate工具生成DDL。 生成
2023-06-17

sql schema怎么查询指定字段

如果要查询一个 SQL 数据库中的特定字段,可以使用以下语法:SELECT column_nameFROM table_name;其中 column_name 是你想要获取的字段名称,table_name 是你要从中检索数据的表名称。
sql schema怎么查询指定字段
2024-04-09

sql中schema的使用方法是什么

在SQL中,schema是指数据库中的逻辑结构,它包含了数据库对象(如表、视图、索引等)的定义和组织方式。schema的使用方法如下:创建schema:可以使用CREATE SCHEMA语句来创建一个新的schema,语法如下:CREAT
sql中schema的使用方法是什么
2024-04-09

db2怎么导出指定schema下表结构

要导出指定schema下的表结构,可以使用db2look命令。以下是具体步骤:打开命令行窗口,并连接到数据库实例。输入以下命令来导出指定schema下的表结构:db2look -d -e -l -x -z <
db2怎么导出指定schema下表结构
2024-03-14

JSON Schema概念及使用场景是什么

本篇内容介绍了“JSON Schema概念及使用场景是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.什么是JSON Schema相信
2023-07-02

编程热搜

目录