MySQL中的Performance Schema是什么?

news2024/11/24 16:44:13

MySQL中的Performance Schema是什么?

Performance Schema 是 MySQL 的一个特性,主要用于监控 MySQL 服务器在运行时的性能和资源使用情况。它首次引入于 MySQL 5.5 版本,并在后续版本中得到增强。Performance Schema 提供了一种方式来收集数据库操作的性能和资源使用数据,而对数据库的性能影响尽可能地小。

Performance Schema 主要目的是帮助开发者和数据库管理员诊断性能问题,监控数据库系统的健康状况,以及优化SQL查询。它通过一系列预定义的仪表和消费者来实现,这些仪表可以跟踪不同类型的服务器执行事件(例如SQL语句执行、文件读写和锁的使用等)。

工作原理

Performance Schema 使用一种轻量级的方法来监控服务器活动。它在服务器启动时初始化,并且可以动态地配置来收集不同类型的数据。这些数据被存储在内存中的表格里,可以通过 SQL 查询进行访问。

主要特性

  1. 低开销: Performance Schema 设计时就考虑到了对系统性能的最小影响。
  2. 易于使用: 提供了丰富的性能监控数据,可以通过标准的 SQL 查询访问。
  3. 高度配置性: 用户可以启用或禁用特定的监控器,根据需要收集特定数据。
  4. 实时数据: 提供实时性能数据,帮助及时发现和解决问题。

使用场景

  • 性能调优: 通过监控查询的执行时间和系统资源的使用情况,可以识别出性能瓶颈。
  • 系统健康监控: 定期检查和分析性能数据,以确保数据库系统的稳定运行。
  • 故障诊断: 在出现性能下降或其他问题时,Performance Schema 能提供关键数据帮助定位问题源头。

如何启用和配置

要使用 Performance Schema,需要在 MySQL 配置文件(通常是 my.cnf 或 my.ini)中启用它。下面是一个基本的配置示例:

[mysqld]
performance_schema=ON

在服务器启动后,可以通过 SQL 命令进一步配置和查询 Performance Schema 的数据。

在 MySQL 中,Performance Schema 默认是启用的。但是,管理员可以选择关闭它以节省资源,特别是在不需要详细性能数据分析的环境中。要查看 Performance Schema 是否已经启用,可以通过如下 SQL 命令查询:

SHOW VARIABLES LIKE 'performance_schema';

该命令将显示 performance_schema 的状态,如果结果是 ON,则表示已经启用。

配置

Performance Schema 的配置主要通过修改 MySQL 的配置文件和设置服务器的启动参数来进行。此外,还可以通过 SQL 语句动态地修改某些配置,例如启用或禁用特定的监控仪器。

例如,如果要禁用某个特定事件的监控,可以使用如下 SQL 命令:

UPDATE performance_schema.setup_instruments SET ENABLED = 'NO' WHERE NAME = 'wait/synch/mutex/sql/LOCK_manager';

这条命令将禁用与 LOCK_manager 互斥锁相关的事件监控。

查询

查询 Performance Schema 数据主要是通过访问其内部表来实现。例如,要查看当前活动的线程信息,可以使用如下查询:

SELECT * FROM performance_schema.threads;

这将列出所有当前活动的线程以及它们的状态和其他相关信息。

进一步地,如果想要查看关于特定 SQL 语句的性能统计,可以查询 events_statements_summary_by_digest 表:

SELECT * FROM performance_schema.events_statements_summary_by_digest WHERE DIGEST_TEXT LIKE '%SELECT%';

这将显示所有与 SELECT 语句相关的性能统计数据。

实际应用场景

1. 查询优化

开发者和数据库管理员可以使用 Performance Schema 来监控和分析 SQL 查询的执行细节。例如,通过查看 events_statements_summary_by_digest 表,可以获取到最消耗资源的查询,这些数据可以帮助优化这些查询的性能,例如通过改写查询或增加索引来减少查询时间和资源消耗。

2. 服务器资源监控

通过监控文件 I/O 操作、内存使用情况以及网络活动,管理员可以得到数据库服务器的资源利用情况的全面视图。例如,file_io_summary_by_event_name 表提供了关于文件操作的详细信息,可以用来识别因为 I/O 操作导致的性能瓶颈。

3. 锁定分析

在并发访问高的环境中,锁定冲突可能会显著影响数据库性能。通过 events_waits_summary_global_by_event_name 表,可以监控和分析各种锁定事件,帮助开发者和管理员发现并解决死锁或长时间锁等问题。

4. 诊断数据库延迟和错误

Performance Schema 能够帮助诊断数据库操作中的延迟问题和潜在错误。通过分析数据库操作如何在系统内部处理,管理员可以识别和解决配置错误或潜在的系统故障。

5. 监控应用程序行为

除了数据库本身的性能监控,Performance Schema 也可以用来分析应用程序如何与数据库交互。这包括分析查询模式、连接频率以及应用程序造成的负载类型等,从而优化应用程序的数据库访问策略。

结论

Performance Schema 是 MySQL 中一个强大的工具,用于监测和诊断数据库性能问题。它的设计确保了监控活动对数据库操作的干扰降到最低,同时提供了丰富的数据帮助优化数据库性能。

参考链接

  • MySQL 官方文档:MySQL Performance Schema
  • Performance Schema 使用案例:Performance Schema Quick Start

在这里插入图片描述

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

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

相关文章

PID算法学习

PID算法介绍 在过程控制中,按偏差的比例(P)、积分(I)和微分(D)进行控制的PID控制器(亦称PID调节器)是应用最为广泛的一种自动控制器。它具有原理简单,易于实…

某会员商店App的api接口分析

1、目的 探索学习app接口的加解密机制,并通过api模拟调用的方式,发起业务请求。仅供学习。 2、工具准备 样本App版本:v5.0.80,v5.0.90 设备:Oppo R9s(Android7.1.1) MacOS Big Sur&#xff…

基于Spring Boot的口腔管理平台设计与实现

基于Spring Boot的口腔管理平台设计与实现 开发语言:Java框架:springbootJDK版本:JDK1.8数据库工具:Navicat11开发软件:eclipse/myeclipse/idea 系统部分展示 管理员登录界面图,管理员登录进入口腔管理平…

基于JAVA实现的推箱子小游戏

Java推箱子小游戏实现: 推箱子小游戏曾经在我们的童年给我们带来了很多乐趣。推箱子这款游戏现在基本上没人玩了,甚至在新一代人的印象中都已毫无记忆了。。。但是,这款游戏可以在一定程度上锻炼自己的编程能力。 窗口画面设计:i…

鸿蒙OpenHarmony【轻量系统 编译】 (基于Hi3861开发板)

编译 OpenHarmony支持hb和build.sh两种编译方式。此处介绍hb方式,build.sh脚本编译方式请参考[使用build.sh脚本编译源码]。 使用build.sh脚本编译源码 进入源码根目录,执行如下命令进行版本编译。 ./build.sh --product-name name --ccache 说明&…

今日arXiv最热大模型论文:大模型也来看球,还能判断是否犯规

在足球世界,裁判的哨声可谓“千金难买”,因为它能直接决定俱乐部的钱包是鼓是瘪。但球场变化莫测,非常考验裁判的水平。 2022年卡塔尔世界杯上,半自动越位识别技术(SAOT)闪亮登场,通过12台摄像…

Rabbitmq安装延迟插件rabbitmq_delayed_message_exchange失败

Docker里的Rabbitmq容器安装延迟插件rabbitmq_delayed_message_exchange失败 一启动插件Rabbitmq容器直接停止运行了 rabbitmq-plugins enable rabbitmq_delayed_message_exchange排除了版本问题和端口问题等,发现是虚拟机运行内存不够,增加虚拟机运行内…

游戏新手村18:游戏广告渠道与广告形式

上文我们说到,渠道为王,渠道可以为我们带来流量和用户,进而带来收入。我们可以通过哪些渠道导入用户呢?每个渠道有哪些优劣呢?在进行游戏营销推广的时候我们该如何选择呢? 根据付费性质,我们可…

Dbeaver客户端安装和使用

数据库管理软件(DBMS): • 数据是数据库中存储的基本对象,种类包括文字、图形、图像、声音等等 • 数据库(database)是以某种有组织的方式存储的数据集合,保存有组织的数据的容器,通…

【C语言必刷题】7. 百钱百鸡

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更…

大模型_ ChatGLM-Med推理及微调部署

文章目录 ChatGLM-Med是什么数据集构建推理部署python环境切换到安装好的conda环境下载github数据切换目录在infer.py修改模型路径启动推理解决infer.py报错修改后再次启动推理完成 微调部署安装evaluate包修改模型路径启动微调 ChatGLM-Med是什么 经过中文医学指令精调/指令微…

echarts地图叠加百度地图底板实现数据可视化

这里写自定义目录标题 echarts地图叠加百度地图实现数据可视化echarts地图叠加百度地图实现数据可视化 实现数据可视化时,个别情况下需要在地图上实现数据的可视化,echarts加载geojson数据可以实现以地图形式展示数据,例如分层设色或者鼠标hover展示指标值,但如果要将echa…

国产麒麟系统下打包electron+vue项目(AppImage、deb)

需要用到的一些依赖包、安装包以及更详细的打包方法word以及麒麟官网给出的文档都已放网盘,链接在文章最后!!!!!!!!!!!!&a…

【系统架构师】-选择题(四)

1、“41”视图 ①逻辑视图(Logical View),设计的对象模型(使用面向对象的设计方法时)。 ②过程视图(Process View),捕捉设计的并发和同步特征。系统集成师 ③物理视图(Physical View),描述了软件到硬件的映射,反映了分布式特性。系…

SCI一区级 | Matlab实现BES-CNN-GRU-Mutilhead-Attention多变量时间序列预测

SCI一区级 | Matlab实现BES-CNN-GRU-Mutilhead-Attention秃鹰算法优化卷积门控循环单元融合多头注意力机制多变量时间序列预测 目录 SCI一区级 | Matlab实现BES-CNN-GRU-Mutilhead-Attention秃鹰算法优化卷积门控循环单元融合多头注意力机制多变量时间序列预测预测效果基本介绍…

命令行启动pytest自动化程序时,程序卡住不动了,不继续往下执行了

一、问题描述 在执行pytestallure自动化测试工具的时候,命令行启动程序时,程序卡住不继续往下执行,如下图所示。 代码主函数如下: 二、解决方法 测试客户项目时遇到2次此类问题,2次问题原因不一样。 原因一&#xf…

【JVM】从i++到JVM栈帧

【JVM】从i到JVM栈帧 本篇博客将用两个代码例子,简单认识一下JVM与栈帧结构以及其作用 从i与i说起 先不急着看i和i,我们来看看JVM虚拟机(请看VCR.JPG) 我们初学JAVA的时候一定都听到过JAVA“跨平台”的特性,也就是…

XiaodiSec day017 Learn Note 小迪安全学习笔记

XiaodiSec day017 Learn Note 小迪安全学习笔记 记录得比较凌乱,不尽详细 day 17 主要内容: php 框架 thinkPHPyiilaravel 使用 fofa 搜索 thinkphp 市面上 thinkphp5 版本较多 url 结构 域名/.php(文件名)/index(目录)/index(函数名)模块名-控…

律师口才训练技巧课程介绍?

律师口才训练技巧课程介绍 一、课程背景与目标 律师口才作为法律职业的核心能力之一,对于律师在**辩论、法律咨询、谈判协商等场合的表现具有至关重要的作用。然而,许多律师在口才方面存在不足,难以充分发挥自己的专业能力。因此,…

stm32开发之netxduo组件之mqtt客户端的使用记录

前言 1使用mqtt协议的简单示例记录 代码 MQTT服务端(C# 编写,使用MQTTnet提供的示例代码) 主程序 namespace ConsoleApp1;public class Program {public static async Task Main(string[] args){await Run_Server_With_Logging();}}public static async Task Run_Server_Wi…