mysql事件统计之PERFORMANCE_SCHEMA基础详解

mysql事件统计之PERFORMANCE_SCHEMA基础详解

悲梦一 2024-11-22 技术 324 次浏览 0个评论

自MySQL 5.5开始,一个名为PERFORMANCE_SCHEMA的数据库被引入,主要用于收集数据库服务器的性能参数。这个库中的表存储引擎均为PERFORMANCE_SCHEMA,用户不能直接创建使用此存储引擎的表。在performance_schema中,事件统计表分为5个类别:等待事件、阶段事件、语句事件、事务事件和内存事件。


它具有以下特点:

1) 提供了一种在数据库运行时实时检查server内部执行情况的方法。performance_schema数据库中的表使用performance_schema存储引擎,专注于数据库运行过程中的性能相关数据,与主要关注server元数据信息的information_schema不同。

2) 通过监视server的事件实现监视server内部运行情况,这些“事件”是server内部活动及对应的时间消耗,帮助判断资源消耗情况。事件可以是函数调用、操作系统等待、SQL语句执行阶段(如parsing或sorting阶段)或整个SQL语句。

3) 与写入二进制日志中的事件和事件计划调度程序中的事件不同,performance_schema中的事件记录的是server执行某些活动对资源的消耗、耗时、执行次数等情况。

4) performance_schema中的事件只记录在本地server的performance_schema中,数据变化不会被写入binlog中,也不会通过复制机制复制到其他server。

5) 提供了当前活跃事件、历史事件和事件摘要相关的表,可以分析特定线程、对象(如mutex或file)的活动。

6) 使用server源代码中的“检测点”来实现事件数据的收集,不需要单独的检测线程。

7) 收集的事件数据存储在performance_schema数据库的表中,可以使用SELECT语句查询,也可以用SQL语句更新(注意:配置表更改会立即生效)。

8) performance_schema中的数据不持久化存储,重启后数据会丢失。

9) 在所有支持的平台中,事件监控功能都可用,但计时器类型可能有所不同。


performance_schema遵循以下设计目标:

1)启用performance_schema不会对server的行为产生影响,如线程调度机制、查询执行计划。

2)持续监测,开销小,不会导致server不可用。

3)不增加新的关键字或语句,解析器不会变化。

4)即使内部对某事件执行监测失败,也不会影响server正常运行。

5)事件数据的收集是持续不断的过程,检索只在需要查看时才进行。

6)可以很容易地添加新的监测点。

7)监测点代码版本化,旧代码可以继续工作。

注意:MySQL sys schema是一组对象(包括相关的视图、存储过程和函数),可以方便地访问performance_schema收集的数据,检索的数据可读性更高。


instruments:用于采集MySQL中各种操作产生的事件信息,对应的配置项称为监控采集配置项。

consumers:用于存储来自instruments采集的数据,对应的配置项称为消费存储配置项。


performance_schema库下的表可以按照不同纬度进行分组,例如按数据库对象、事件类型分组,或进一步按帐号、主机、程序、线程、用户等分组。


5.1、打开performance_schema

在5.7.x及其以上版本中,performance_schema默认启用。在5.6.x及其以下版本中,默认关闭。如果需要显式启用或关闭,可以在my.cnf中设置:

[mysqld]
performance_schema = ON  # 注意:该参数为只读参数,需要在实例启动之前设置才生效

5.2、配置instruments

数据库初始化启动时,并非所有instruments和consumers都启用。在setup_instruments表中,顶级instruments组件分类如下:

1) Idle 组件(1个)

2) transaction 组件(1个)

3) Memory 组件(377个),默认情况下禁用了大多数memory instruments

4) Stage Instrument 组件(129个)

5) Statement Instrument 组件(193个)

6) Wait Instrument 组件(319个),包含如下几个子类

wait/io:用于检测I/O操作的instruments
wait/io/table/sql/handler:与表I/O操作相关的instruments
wait/lock:锁操作相关的instruments 
wait/synch:磁盘同步对象相关的instruments

5.2.2、推荐配置

my.cnf参考配置:

performance-schema=on
performance-schema-instrument='wait/io/file/%=on'
performance-schema-instrument='wait/io/table/%=on'
performance-schema-instrument='statement/com/%=on'
performance-schema-instrument='statement/sql/%=on'
performance-schema-instrument='stage/sql/%=on'
performance-schema-instrument='memory/%=on'
performance-schema-consumer-events_stages_current=on
performance-schema-consumer-events_stages_history=on
performance_schema_events_stages_history_size=30
performance-schema-consumer-events_stages_history_long=on
performance_schema_events_statements_history_long_size=10000
performance-schema-consumer-events_statements_current=on
performance-schema-consumer-events_statements_history=on
performance_schema_events_statements_history_size=30
performance-schema-consumer-events_statements_history_long=on
performance_schema_events_statements_history_long_size=10000
performance-schema-consumer-events_waits_current=on
performance-schema-consumer-events_waits_history=on
performance_schema_events_statements_history_size=30
performance-schema-consumer-events_waits_history_long=on
performance_schema_events_waits_history_long_size=10000
performance-schema-consumer-statements_digest=on

后续将分享更多关于devops和DBA的内容,感兴趣的朋友请持续关注。

 永夜星河版美甲  陈都灵走这两步够我学一辈子  韩国1:1遭巴勒斯坦逼平  泽连斯基“秘密计划”遭泄露  你好猫猫巴士  科切拉音乐节2025阵容官宣  埃文·凯尔被老北京豆汁儿彻底征服  车位“缩水”4毫米业主索赔  再见爱人招剪辑  误杀3定档  女孩模仿老师讲课绘声绘色  杨子:我会不会被骂上热搜啊  日本首相被网民嫌弃吃相难看  勇士后卫梅尔顿接受手术 赛季报销  娃哈哈回应钟睒睒绿瓶纯净水言论  中国新任驻乌大使抵达乌克兰履新  盘点王宝强名下企业  A500ETF买哪个  世界最高和最矮女性首次同框  博主:谢文能和拜合拉木是国足未来  爆改前后反差感有多大  王曼昱犀利进攻  受王宝强资助孩子父亲发声  丁禹兮素颜  喜欢一座城从早餐开始  广东现海水倒灌 养殖户称第一次见  孙颖莎vs陈幸同  卫生巾长度究竟是否“缩水”  2024年“百亿医院”增至17家  范志毅点评国足表现  巴勒斯坦记者:加沙的儿童正遭屠杀  一人控制600台手机不停转评赞  华为官宣MateX6  电影好东西今日上映  李子柒王冰冰现身绵阳  当我问对象要情绪价值  李行亮麦琳 难哄  小雪初冬看一场九寨沟的雪  牛肉价格背后的外贸布局  陈幸同说从结果上来看对比赛满意  李斌回应蔚来十月交付量下降  看看我们的大爪爪  国足赛后谢场迎全场欢呼  以色列被曝计划吞并约旦河西岸  考研是一场巨型信息差  独行侠狂胜鹈鹕  洲际导弹首次投入实战  瓜帅上任后英超积分榜:曼城居首  Faker韩国外交部演讲  MAMA美国场 

转载请注明来自广州玛斯顿影音有限公司,本文标题:《mysql事件统计之PERFORMANCE_SCHEMA基础详解 》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!
Top