MySQL 5.8 Performance Schema 配置详解

news2024/12/23 18:38:41

请在此添加图片描述

MySQL 5.8 Performance Schema 配置详解

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

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

基本概念

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

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

编译时配置

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

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

cmake . -DWITHOUT_PERFORMANCE_SCHEMA=1

注意

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

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

mysqld --help --verbose | grep performance_schema

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

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 中执行的语句。

[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(生产者)要监控哪些事件,支持通配符。例如,如果只想监控文件操作,可以这样配置:

[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 表的最大行数。如果摘要数据超过该行数,将停止记录新的摘要信息。

[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 语句:

UPDATE setup_instruments SET ENABLED = 'YES' WHERE NAME = 'wait/io/file/sql/handler';

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

UPDATE setup_instruments SET ENABLED = 'NO' WHERE NAME = 'wait/io/file/sql/handler';

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


总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2178308.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第十四周周报:Transformer for CV

目录 摘要 Abstract 一、Swin Transformer 1.1 输入 1.2 Patch Partition 1.3 Linear Embedding 1.4 Patch Merging 1.5 Swin Transformer Block 1.6 代码 二、MLP-Mixer 2.1 网络模型整体结构 2.2 Mixer Layer 2.3 MLP 总结 摘要 本篇博客介绍了采用类似于卷积…

MySQL篇(leetcode刷题100(查询))(二)(持续更新迭代)

目录 一、普通查询 1. 可回收且低脂的产品(简单) 1.1. 题目描述 1.2. 解题思路 2. 寻找用户推荐人(简单) 2.1. 题目描述 2.2. 解题思路 3. 大的国家(简单) 3.1. 题目描述 3.2. 解题思路 4. 文章浏…

【JavaEE初阶】文件IO(下)

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 文件内容操作 打开 关闭文件 文件描述符表 字节流 读文件 写文件 字符流 读文件 写文件 Scanner 示例一:通过scanner读取文件中的数字 示例二:扫描指定⽬录 示例三:实…

JUC第23讲:Java线程池最佳实践

JUC第23讲:Java线程池最佳实践 本文是JUC第23讲,先介绍为什么使用线程池;然后结合实际业务,讲解如何使用线程池,以及使用过程中踩过的坑。 1、Java线程池概述 1.1、什么是线程池? 线程池是一种用于管理和…

彩虹易支付最新版源码及安装教程(修复BUG+新增加订单投诉功能)

该系统也没版本号,此版本目前是比较新的版本,增加了订单投诉功能,和一个好看的二次元模板。 此版本是全开源版,无一处加密文件,系统默认是安装后是打不开的, 本站特别修复了BUG文件,在PHP7.4环境下也没问…

数据结构和算法之树形结构(4)

文章出处:数据结构和算法之树形结构(4) 关注码农爱刷题,看更多技术文章!!! 六、红黑树(接前篇) 红黑树是为了弥补AVL树在大规模频繁增删节点场景下性能不理想而设计出来的一种平衡二叉查找树。红黑树不是一种严…

cuda程序编译流程

cuda程序编译流程 本文以cuda example的matrixMul矩阵乘法为例说明cuda程序的编译流程。 1. 源代码 .cu 文件 在matrixMul示例中,源代码文件 matrixMul.cu 是典型的CUDA程序,包含以下部分: 流程图 主机代码(Host Code&#xf…

Vivado - JTAG to AXI Master (GPIO、IIC、HLS_IP)

目录 1. 简介 2. JTAG to AXI Master 2.1 添加 IP Core 2.2 基本TCL命令 2.2.1 复位 JTAG-to-AXI Master 2.2.2 创建并运行写入传输事务 2.2.3 创建并运行读取传输事务 2.2.4 命令列表 2.3 帮助信息 2.4 创建TCL读写程序 2.4.1 Read proc 2.4.2 Write proc 2.4.3 …

嵌入式学习--LinuxDay03

嵌入式学习--LinuxDay03 shell脚本 1.1功能性语句 1.1.1说明性语句 1.1.2功能性语句 1)read 2)expr 3) test a)字符串 b)整数的测试 c)文件属性的测试 1.2结构性语句 1.2.1if语句 1.2.2case语句 1.2.3for循环 1.2.4while循环 1.2.5循环控制语句 shell脚本…

心觉:运用吸引力法则和开发潜意识的核心中的核心是什么?

吸引力法则的核心在于 思想的力量 和 频率的匹配。你所思考和感受的会吸引与你频率相匹配的事物和经历到你的生活中。具体来说: 明确意图和目标:清晰地知道你想要什么,并且用详细的方式描述它。这可以是通过写下目标、制作愿景板(…

rocky9.2实现lvs(DR模式)+keepalived实现高可用的案例详解(双机热备、lvs负载均衡、对后端服务器健康检查)

文章目录 [TOC] 前言lvs(DR模式)的工作原理环境实现过程一、lvs1配置二、lvs2配置web1配置web2配置结果验证 总结 前言 想必能搜到这个也不是来看知识点的,这里就简单描述一下lvs的dr模式的工作原理,其他的就不过多阐述了,直接看操作步骤就好&#xff0…

rabbitMQ 简单使用

安装 rabbitMQ 下载地址:rabbitmq-3.12.0 安装 windows rabbitMQ 需要的命令 进入 rabbitMQ 的 sbin 目录后 cmd (需要管理员权限) rabbitmq-plugins.bat enable rabbitmq_management随后重启 rabbitMQ #关闭服务 net stop rabbitmq #开…

【机器学习(八)】分类和回归任务-因子分解机(Factorization Machines,FM)算法-Sentosa_DSML社区版

文章目录 一、算法概念二、算法原理(一) FM表达式(二)时间复杂度(三)回归和分类 三、算法优缺点(一)优点(二)缺点 四、FM分类任务实现对比(一&…

YOLOV8在清微智能芯片的部署与实现(一)

现在以YOLOV8 为例,进行演示 文章目录 1. YOLOV8浮点模型训练1.1 准备数据集1.1.1 下载业务数据集1.1.2 下载开源数据集1.1.3 自定义数据集1.1.4 将数据转换为yolo训练数据格式 1.2 yolov8项目准备1.3 训练模型 2. YOLOV8浮点模型推理2.1 模型推理2.2 模型val.py评…

纯CSS实现有趣emoji切换开关

这是一个纯CSS创建的动画切换开关,它不仅能够在视觉上吸引用户,还能通过交互提供即时反馈。本文将解析源码的核心实现逻辑,这个项目的核心是使用CSS变量、3D变换和过渡效果来实现一个动态的、响应式的用户界面元素。 关键技术点 CSS变量&am…

[Python学习日记-31] Python 中的函数

[Python学习日记-31] Python 中的函数 简介 语法定义 函数的参数 简介 引子: 你是某公司的一个高级程序员,现在老板让你写一个监控程序,需要24小时全年无休的监控公司网站服务器的系统状况,当 CPU、Memory、Disk 等指标的使用…

基于SpringBoot+Vue+MySQL的体育商城系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着互联网的飞速发展,电子商务已成为人们日常生活中不可或缺的一部分。体育用品市场作为其中的一个重要分支,也逐渐向线上转移。基于SpringBootVueMySQL的体育商城系统应运而生,旨在通过构建…

如何使用ssm实现基于Java的高校物业工程报修系统

TOC ssm736基于Java的高校物业工程报修系统jsp 绪论 1.1研究背景与意义 信息化管理模式是将行业中的工作流程由人工服务,逐渐转换为使用计算机技术的信息化管理服务。这种管理模式发展迅速,使用起来非常简单容易,用户甚至不用掌握相关的专…

一行命令将Cmder添加到系统右键菜单中----配置环境

第一步,去官网下载一个简版的文件 ** 第二步,将下载的文件解压后如图,找到Cmder.exe右键以管理员身份运行 第三步,在窗口输入cmder /register all然后回车 第四步,OK!不管在哪里都可以使用了,直接右键即可

vscode环境迁移

关注B站可以观看更多实战教学视频:hallo128的个人空间 vscode环境迁移 Setting 即可打开settings.json {"python.pythonPath": "/Users/apple/opt/anaconda3/bin/python","cmake.cmakePath": "/usr/local/bin/cmake",&qu…