Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MySQL 5.8 Performance Schema 配置详解

MySQL 5.8 Performance Schema 配置详解

原创
作者头像
不惑
发布于 2024-09-05 12:22:28
发布于 2024-09-05 12:22:28
94900
代码可运行
举报
文章被收录于专栏:GoboyGoboy
运行总次数:0
代码可运行

MySQL 5.8 Performance Schema 配置详解

MySQLPerformance Schema 是一个用于监控和优化数据库性能的子系统,专门用来收集 MySQL 服务器的运行情况和性能指标。它的核心原理是通过“生产者”和“消费者”的概念来采集和存储数据库中的事件信息,帮助开发者和数据库管理员分析并优化系统性能。

本文将详细介绍如何在 MySQL 5.8 中配置 Performance Schema,涵盖编译时配置、启动时配置以及运行时配置。为了让大家更容易理解,我还会加入具体的操作示例。

基本概念

在介绍配置细节之前,首先理解两个关键概念:

  • Instruments(生产者): 这些组件负责采集 MySQL 中各种操作产生的事件信息。它们是性能数据的生产者,例如对文件操作、锁等待、SQL 执行等进行记录。
  • Consumers(消费者): 这些组件负责存储从生产者那里收集到的性能数据,并在需要时供用户查询。消费者是性能数据的存储单元,例如存储各类事件的历史记录。

编译时配置

当我们从源代码编译 MySQL 时,Performance Schema 的一些功能模块可以通过编译选项进行定制。如果有特定的需求(例如只监控某些类型的事件),可以通过 cmake 选项来选择要包含或排除哪些监控功能。

使用 cmake 选项指定是否开启 Performance Schema 的某些功能。例如,如果我们希望排除某些监控功能,可以执行以下命令:

代码语言:shell
AI代码解释
复制
cmake . -DWITHOUT_PERFORMANCE_SCHEMA=1

注意

一般情况下,不建议手动禁用 Performance Schema 的模块,除非明确知道这些功能不会被使用。在大多数情况下,MySQL 默认配置的 Performance Schema 足以应对大部分场景。

如果已经安装好 MySQL 并不确定是否支持 Performance Schema,可以使用以下命令验证:

代码语言:shell
AI代码解释
复制
mysqld --help --verbose | grep performance_schema

或者登录 MySQL 实例后,使用以下命令检查:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SHOW ENGINES;

如果输出中显示 performance_schema,则说明 MySQL 支持这个功能。


启动时配置

Performance Schema 的配置在 MySQL 启动时生效,这意味着任何在运行过程中收集的数据都会保存在内存中,一旦 MySQL 实例停止,这些数据会丢失。因此,想要持久化配置项,我们可以在 MySQL 配置文件(通常为 my.cnf)中添加相关配置,确保每次启动时自动加载这些配置。

启动选项

MySQL 启动时,有一系列与 Performance Schema 相关的配置选项,它们可以控制哪些事件采集器和数据消费者在启动时启用。虽然这些配置在启动之后不能通过 SHOW VARIABLES 命令查看,但可以在 MySQL 配置文件中定义这些选项。

常见的启动选项有以下几种:

performance_schema_consumer_events_statements_current=TRUE

这个选项在 MySQL 启动时会启用 events_statements_current 表,用于记录当前正在执行的 SQL 语句信息。通过此功能,我们可以实时监控 MySQL 中执行的语句。

代码语言:ini
AI代码解释
复制
[mysqld] 
performance_schema_consumer_events_statements_current=TRUE

performance_schema_consumer_events_statements_history=TRUE

记录 SQL 语句事件的历史信息。与 current 不同,history 表会保存已经执行完毕的 SQL 语句事件。

performance_schema_consumer_global_instrumentation=TRUE

启用全局事件的监控,比如文件操作、锁等待、线程等。

performance_schema_instrument[=name]

通过该选项,可以指定具体的 instruments(生产者)要监控哪些事件,支持通配符。例如,如果只想监控文件操作,可以这样配置:

代码语言:ini
AI代码解释
复制
[mysqld] 
performance_schema_instrument='wait/io/file/%'

这些选项在 MySQL 启动时被解析和加载。确保在配置文件中设置 performance_schema=ON,否则这些选项不会生效。

系统变量

Performance Schema 提供了多种系统变量,用于控制消费者表的存储限制和性能监控的细节。这些系统变量只能在 MySQL 启动时设置,且在启动之后不可更改。

常见的系统变量包括:

performance_schema=ON

这是控制 Performance Schema 是否启用的开关。自 MySQL 5.7 版本起,默认启用此功能。

performance_schema_digests_size=10000

该变量控制 events_statements_summary_by_digest 表的最大行数。如果摘要数据超过该行数,将停止记录新的摘要信息。

代码语言:txt
AI代码解释
复制
[mysqld] 
performance_schema_digests_size=10000

performance_schema_max_sql_text_length=1024

控制 SQL 语句在 SQL_TEXT 列中保存的最大长度。如果 SQL 语句太长,会被截断。适当增加这个值可以提高 SQL 语句的完整性。

performance_schema_events_statements_history_size=10

控制每个线程的 events_statements_history 表中最大保存的历史事件数。超过该数目时,最早的记录会被覆盖。


运行时配置

MySQL 在运行时允许我们动态调整 Performance Schema 的设置,这通过 setup_instrumentssetup_consumers 表来实现。可以动态启用或禁用特定的事件监控器或消费者。例如,如果想要开始监控某个特定的文件操作,可以执行以下 SQL 语句:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UPDATE setup_instruments SET ENABLED = 'YES' WHERE NAME = 'wait/io/file/sql/handler';

同样的,如果不再需要某些数据的采集,可以通过以下命令禁用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UPDATE setup_instruments SET ENABLED = 'NO' WHERE NAME = 'wait/io/file/sql/handler';

这些更改会立即生效,而不需要重新启动 MySQL 实例。


总结

MySQL 5.8 的 Performance Schema 是一个非常强大的工具,可以帮助开发者和管理员深入分析数据库的运行状态,并优化性能。通过了解如何配置和调整 Performance Schema,可以更好地利用这些功能进行性能调优。在实际运维过程中,推荐结合实际业务需求合理调整 Performance Schema 的配置,以达到最佳的性能监控效果。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
配置详解 | performance_schema全方位介绍
在上一篇 《初相识 | performance_schema全方位介绍》 中粗略介绍了如何配置与使用performance_schema,相信大家对performance_schema能够为我们提供什么样的性能数据已经有一个初步的认识,今天将带领大家一起踏上系列第二篇的征程(全系共7个篇章),在这一期里,我们将为大家全面讲解performance_schema配置方式以及各个配置表的作用。下面,请跟随我们一起开始performance_schema系统的学习之旅吧。
沃趣科技
2018/05/15
10.2K0
配置详解 | performance_schema全方位介绍
「Mysql优化大师一」mysql服务性能剖析工具
方法一: 全局变量设置,将 slow_query_log 全局变量设置为“ON”状态 mysql> set global slow_query_log='ON'; 设置慢查询日志存放的位置 mysql> set global slow_query_log_file='/usr/local/mysql/data/slow.log'; 查询超过1秒就记录 mysql> set global long_query_time=1;
源码之路
2020/09/24
1.2K0
「Mysql优化大师一」mysql服务性能剖析工具
MySQL Performance_Schema解读
在mysql5.5版本之后新增了performance_schema的数据库用于监视数据库性能,该数据库中表的引擎都是performance_schema。PS数据库默认是关闭的,其中的表都是内存表,不存储在磁盘中,在服务器重启后数据消失。在数据文件performance_schema目录下只有表结构文件不存在数据文件,对这些表的改变不会记录到binlog中。数据收集是通过修改服务器源代码来实现的,不存在与PS相关联的单独线程。PS数据库消耗很少的性能,官方文档介绍即使将PS中所有监控项开启也不会对mysql server性能造成太大影响。
数据库架构之美
2019/12/18
3.9K0
MySQL Performance_Schema解读
MySQL Performance Schema 详解及运行时配置优化
MySQL 的 Performance Schema 是一套性能监控与诊断工具,帮助开发者和数据库管理员收集、分析 MySQL 实例的运行状态,找出性能瓶颈并进行优化。通过 Performance Schema,我们能够监控不同的内部事件、线程、会话、语句执行等关键性能指标。然而,默认情况下并非所有监控项目都被启用,用户可以通过配置相关的表来灵活调整需要采集的监控数据。
不惑
2024/09/05
2580
MySQL Performance Schema 详解及运行时配置优化
MySQL内置数据库performance_schema详解(七):监视内存使用的表介绍
performance_schema 是 MySQL 数据库中的一个内置的系统数据库,最早从MySQL5.5版本产生,这个数据库主要用于收集和存储与数据库性能相关的统计信息和指标。
小明互联网技术分享社区
2023/12/28
4960
MySQL内置数据库performance_schema详解(七):监视内存使用的表介绍
初识 performance_schema:轻松掌握MySQL性能监控
performance_schema 是 MySQL 5.8 版本的一个强大功能,它就像是一个内置的“性能侦探”,专门用来监控和分析 MySQL 服务器的资源消耗和等待情况。有了它,数据库管理员和开发者就能实时了解服务器的运行状态,从而更好地进行性能调优。
不惑
2024/09/05
4110
初识 performance_schema:轻松掌握MySQL性能监控
Performance Schema使用简介(一)
Performance Schema简介 Oracle DBA都应该知道 Oracle中提供了大量的视图供DBA们排查问题使用,并且有等待事件帮助大家快速定位问题属于哪一类。MySQL 中也有Performance Schema帮助大家去分析排查问题,并且在5.7中增加了Sys Schema,将Performance Schema和information_schema的信息格式化后,供大家更方便的分析问题。 这里先介绍先Performance Schema的使用方式,便于后面大家更好的去使用Sys Sc
沃趣科技
2018/03/26
2.3K0
performance_schema 使用快速入门
在数据库性能调优的过程中,performance_schema 是一个非常有用的工具,它可以帮助我们深入分析 MySQL 内部的性能表现。通过合理使用 performance_schema,我们可以发现数据库中的性能瓶颈并做出优化。本文将以 MySQL 5.8 为例,详细介绍如何使用 performance_schema。
不惑
2024/09/05
2420
performance_schema 使用快速入门
事件记录 | performance_schema全方位介绍
在上一篇 《配置详解 | performance_schema全方位介绍》 中,我们详细介绍了performance_schema的配置表,坚持读完的是真爱,也恭喜大家翻过了一座火焰山。相信有不少人读完之后,已经迫不及待的想要跃跃欲试了,今天将带领大家一起踏上系列第三篇的征程(全系共7个篇章),在这一期里,我们将为大家全面讲解performance_schema中事件原始记录表。下面,请跟随我们一起开始performance_schema系统的学习之旅吧。
沃趣科技
2018/05/15
3K0
事件记录 | performance_schema全方位介绍
捅破窗户纸-入门MySQL调优之性能监控
MySQL Server的逻辑架构一般分为三层:服务层(专门为客户端服务)、MySQL Server核心层和存储引擎。
行百里er
2020/12/02
1.1K0
捅破窗户纸-入门MySQL调优之性能监控
Sys系统库 · MySQL 5.8 MySQL 配置详解
为了让大家更容易理解sys系统库及其在MySQL性能问题排查中的重要性,我们将基于MySQL 5.8来讨论如何使用sys系统库进行常见的数据库性能问题排查,并通过一些简单的例子加以说明。
不惑
2024/09/20
1790
Sys系统库 · MySQL 5.8 MySQL 配置详解
初相识|performance_schema全方位介绍(PFS)
现在,很高兴的告诉大家,我们基于 MySQL 官方文档加上我们的验证,整理了一份可以系统学习 performance_schema 的资料分享给大家,为了方便大家阅读,我们整理为了一个系列,一共7篇文章。下面,请跟随我们一起开始performance_schema系统的学习之旅吧。
老叶茶馆
2020/11/26
1.2K0
事件统计 | performance_schema全方位介绍
在上一篇 《事件记录 | performance_schema全方位介绍"》中,我们详细介绍了performance_schema的事件记录表,恭喜大家在学习performance_schema的路上度过了两个最困难的时期。现在,相信大家已经比较清楚什么是事件了,但有时候我们不需要知道每时每刻产生的每一条事件记录信息, 例如:我们希望了解数据库运行以来一段时间的事件统计数据,这个时候就需要查看事件统计表了。今天将带领大家一起踏上系列第四篇的征程(全系共7个篇章),在这一期里,我们将为大家全面讲解performance_schema中事件统计表。统计事件表分为5个类别,分别为等待事件、阶段事件、语句事件、事务事件、内存事件。下面,请跟随我们一起开始performance_schema系统的学习之旅吧。
沃趣科技
2018/07/02
2K0
事件统计 | performance_schema全方位介绍
MySQL内置数据库performance_schema详解(四):事务事件记录表介绍
performance_schema 是 MySQL 数据库中的一个内置的系统数据库,最早从MySQL5.5版本产生,这个数据库主要用于收集和存储与数据库性能相关的统计信息和指标。
小明互联网技术分享社区
2023/12/24
8700
MySQL内置数据库performance_schema详解(四):事务事件记录表介绍
MYSQL 监控 performance_schema 拿得起 不放下(1))
随着MYSQL的脚步越来越快,(更新的速度),觉得原来的监控的方式是不是也需要进行进一步的探索,当然现在的监控市场云龙混杂,成型的模式例如 percona pmm, 还有国产的蓝鲸,但这些监控在好,方式在炫酷,但也不能阻挡对数据库底层的监控的知识掌握,否则就只能看图说话,让人心里不踏实。另外很多公司的监控指标还需要灵活对待,不知道底层的监控参数输出,有怎么能开发出自己的监控系统。
AustinDatabases
2020/07/30
9190
MYSQL 监控  performance_schema  拿得起 不放下(1))
MYSQL performance_schema 不显示信息 和调整 performance_schema 的配置
最近在某云使用了MYSQL RDS 产品,说实话不怎么满意,和他家的其他产品比较我到时更原因使用 PG 的产品和云原生产品,那才是业界良心。为什么说不原因,主要是PS 方面让我们初次使用就感觉,不十分良好,2天了PS 里面部分的表还没有数据展示,沟通找问题,最终问题还是我们自己解决了大部分。
AustinDatabases
2022/12/13
7830
MYSQL  performance_schema  不显示信息 和调整 performance_schema 的配置
MySQL PERFORMANCE_SCHEMA监控用法详解
MySQL 5.5开始新增一个数据库:PERFORMANCE_SCHEMA,主要用于收集数据库服务器性能参数。并且库里表的存储引擎均为PERFORMANCE_SCHEMA,而用户是不能创建存储引擎为PERFORMANCE_SCHEMA的表。
Power
2025/02/28
1340
MySQL内置数据库performance_schema详解(三)阶段事件记录表介绍
performance_schema 是 MySQL 数据库中的一个内置的系统数据库,最早从MySQL5.5版本产生,这个数据库主要用于收集和存储与数据库性能相关的统计信息和指标。
小明互联网技术分享社区
2023/12/23
1.1K0
MySQL内置数据库performance_schema详解(三)阶段事件记录表介绍
MySQL监视——Performance Schema
MySQL的Performance Schema是一套内存表,用于跟踪MySQL的性能指标。它实际上使用PERFORMANCE_SCHEMA存储引擎,用户操作performance_schema数据库中的表。用户通过Performance Schema能够观察哪些查询正在运行、I/O等待的状态,及历史性能数据等等信息。Performance Schema仅对本地服务器有效,所有的更改不会复制到其他的服务器。
MySQLSE
2023/08/31
2830
MySQL监视——Performance Schema
高性能 MySQL 第四版(GPT 重译)(一)
由 Oracle 维护的官方文档为您提供了安装、配置和与 MySQL 交互所需的知识。本书作为该文档的伴侣,帮助您了解如何最好地利用 MySQL 作为强大的数据平台来满足您的用例需求。
ApacheCN_飞龙
2024/03/20
8310
高性能 MySQL 第四版(GPT 重译)(一)
相关推荐
配置详解 | performance_schema全方位介绍
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验