当前位置: 首页 > news >正文

初识 performance_schema:轻松掌握MySQL性能监控

请在此添加图片描述

什么是 performance_schema

performance_schema 是 MySQL 5.8 版本的一个强大功能,它就像是一个内置的**“性能侦探”**,专门用来监控和分析 MySQL 服务器的资源消耗和等待情况。有了它,数据库管理员和开发者就能实时了解服务器的运行状态,从而更好地进行性能调优。

performance_schema 的独特之处

实时监控数据库内部活动: performance_schema 能够实时看到 MySQL 服务器的内部活动情况。不同于 information_schema 主要提供的元数据信息,performance_schema 更侧重于收集和分析与性能相关的运行数据。 想看看当前服务器上有哪些活跃的线程吗?简单一条命令就行:

SELECT * FROM performance_schema.threads;

这将让我们一目了然地看到所有活跃线程的信息,帮助监控线程的执行情况。

请在此添加图片描述

**事件监控机制:**它通过监视服务器内的各种事件,比如函数调用、SQL 语句的解析和排序过程,甚至是操作系统的等待时间,来了解资源的消耗情况。这样,就能清楚地知道 MySQL 是如何在处理任务时消耗资源的。 想要查看当前执行的 SQL 语句及其资源消耗吗?试试这个查询:

SELECT * FROM performance_schema.events_statements_current; 

请在此添加图片描述

这将列出正在执行的 SQL 语句,以及它们的执行时间和资源消耗情况。

**本地事件记录:**performance_schema 中的事件数据只记录在本地服务器上,不会写入到 binlog 中,也不会通过主从复制传到其他服务器。这意味着这些数据仅供本地分析使用,保证了数据的安全性和私密性。

事件摘要和分析: 它还提供了事件的历史记录和摘要数据,能够详细分析特定线程或资源(如互斥锁或文件)的活动情况,帮助快速识别出性能瓶颈。 想查看历史事件的摘要吗?用这条 SQL 语句:

SELECT * FROM performance_schema.events_statements_history;

轻量级性能监控: 启用 performance_schema 并不会对服务器的性能造成太大影响。它通过服务器内部的“检测点”来收集事件数据,不需要额外的线程或任务,大大降低了开销。

数据存储在内存中: performance_schema 采集的数据都存储在内存里,一旦服务器重启,这些数据就会丢失。所以,它更适合用来做实时的性能分析,而不是用来长期保存数据。

跨平台支持: MySQL 5.8 在所有平台上都支持事件监控功能,不过不同平台上的计时器类型可能会有所不同。这就意味着,在各个平台上度量时间开销的方式可能会有所差异。

设计目标

performance_schema 的设计目标是:

  • 不改变服务器的正常行为,即使开启了 performance_schema,也不会影响 MySQL Server 的正常运行。
  • 尽量减少对服务器性能的影响,让性能监控的开销尽可能小,适合长时间持续启用。
  • 即使 performance_schema 在采集数据时出现问题,也不会影响到服务器的正常运行。

快速上手 performance_schema

在 MySQL 5.8 中,performance_schema 默认是已经启用的。只需要查询 performance_schema 数据库中的表,就能监控服务器的性能了。

比如,想查询当前活跃的线程,可以用:

SELECT * FROM performance_schema.threads;

或者,想查看当前 SQL 语句的执行事件,可以用:

SELECT * FROM performance_schema.events_statements_current;

这些简单的查询就能帮助快速了解 MySQL 服务器的当前运行状态,而且完全不需要特殊的配置。

performance_schema 的表及其作用

performance_schema 数据库里的表主要分成几类:

  • setup 表:这些表用来配置和调整监控选项。可以通过修改这些表来启用或禁用特定的监控项目,比如 SQL 语句的监控或等待事件的监控。 比如,如果想启用对 SQL 语句的监控,可以这样修改 setup_instruments 表:
UPDATE performance_schema.setup_instruments SET ENABLED = 'YES' WHERE NAME = 'statement/sql/%';
  • events_表**:**这些表记录了不同类别的事件数据,包括 SQL 语句的执行、等待事件和文件操作等等。 如果想查看当前的等待事件,可以这样查询:
SELECT * FROM performance_schema.events_waits_current;
  • summary 表:这些表提供了事件的统计信息和摘要数据,帮助分析资源的使用情况。比如,可以查看某个资源的使用频率和总耗时。 想要查看 SQL 语句的执行摘要吗?可以这样查询:
SELECT * FROM performance_schema.events_statements_summary_by_digest;

通过这些表,performance_schema 为开发者提供了一个全面的 MySQL 性能监控工具箱,让能够轻松地定位性能瓶颈,并进行有效的优化。

总结

在 MySQL 5.8 中引入的 performance_schema 功能,为我们提供了一个强大的性能监控工具。通过监控 MySQL 内部的各种事件,我们可以实时掌握资源的消耗情况和执行状态,从而更有效地优化数据库性能。

相关文章:

初识 performance_schema:轻松掌握MySQL性能监控

什么是 performance_schema performance_schema 是 MySQL 5.8 版本的一个强大功能,它就像是一个内置的**“性能侦探”**,专门用来监控和分析 MySQL 服务器的资源消耗和等待情况。有了它,数据库管理员和开发者就能实时了解服务器的运行状态&a…...

linux下top命令查看和解释

怎么看top结果: top - 10:20:48 up 8 days, 14:07, 2 users, load average: 6.04, 5.82, 4.73 Tasks: 11099 total, 1 running, 10916 sleeping, 0 stopped, 1 zombie %Cpu(s): 8.9 us, 4.6 sy, 0.0 ni, 86.1 id, 0.1 wa, 0.0 hi, 0.3 si, 0.0 st K…...

换个手机IP地址是不是不一样?

在当今这个信息爆炸的时代,手机已经成为我们生活中不可或缺的一部分。而IP地址,作为手机连接网络的桥梁,也时常引起我们的关注。你是否曾经好奇,换个手机,IP地址会不会也跟着变呢?本文将深入探讨这个问题&a…...

【从计算机的发展角度理解编程语言】C、CPP、Java、Python,是偶然还是应时代的产物?

参考目录 前言什么是"computer"?计算机的大致发展历程计算机系统结构阶段(1946~1981)计算机网络和视窗阶段(1982~2007)复杂信息系统阶段(2008~today)人工智能阶段 越新的语言是越好的吗、越值得学习吗? 前言 最近读了 《Python语言程序设计基础》 这本书…...

《Google软件测试之道》笔记

介绍 GTAC:Google Test Automation Conference,Google测试自动化大会。 本书出版之前还有一本《微软测试之道》,值得阅读。 质量不是被测试出来的,但未经测试也不可能开发出有质量的软件。质量是开发过程的问题,而不…...

实战讲稿:Spring Boot整合MyBatis

文章目录 实战讲稿:Spring Boot整合MyBatis课程目标课程内容1. 创建员工映射器接口1.1 创建子包1.2 创建接口 2. 测试员工映射器接口2.1 自动装配员工映射器2.2 测试按标识符查询员工方法2.3 测试查询全部员工方法2.4 测试插入员工方法2.5 测试更新员工方法2.6 测试…...

基于深度学习的眼部疾病检测识别系统

温馨提示:文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 眼部疾病的早期诊断对于防止视力下降乃至失明至关重要。然而,专业的医疗资源分布不均,尤其是在偏远地区,人们很难获得专业的眼科医生提供的及时诊断服务。本系统…...

curl格式化json之jq工具?

jq 是一个轻量级的命令行工具,用于解析、操作和格式化 JSON 数据。它类似于 sed 或 awk,但专门用于处理 JSON 格式。使用 jq,你可以从复杂的 JSON 数据中提取所需的信息,格式化输出,进行数据筛选,甚至修改 …...

百收SEO蜘蛛池

百收SEO蜘蛛池 网站搜索排名上不去?SSL证书来帮忙! #SSL证书#网站优化#搜索引擎优化 谷歌蜘蛛石的话有非常多的一个重要性,首先的话就是能够提升我们网站的一个输入,尤其是对于我们百收SEO蜘蛛池新站来说,我们在做独立…...

(娱乐)魔改浏览器-任务栏图标右上角加提示徽章

一、目标: windows中,打开chromium,任务栏中会出现一个chromium的图标。我们的目标是给这个图标的右上角,加上"有1条新消息"的小提示图标,也叫徽章(badge)注意:本章节纯属娱乐,有需要…...

JVM相关

1.JVM内存区域 一个运行起来的java进程就是一个Java虚拟机,就需要从操作系统中申请一大块内存。 内存中会根据作用的不同被划分成不同的区域: (1)栈:存储的内容是代码在执行过程中,方法之间的调用关系&a…...

9.18 微信小程序开发笔记

如何获取英语单词的发音,使其能在小程序界面通过点击外发? 1.通过外界API获取(例如有道API) 不下载音频文件,每次需要时直接API获取发音,存储压力小。但是一般的API都有使用次数限制,在背单词…...

dpdk课程学习之练习笔记八(dpvs的了解)

只是看到这个,跟着流程做一下练习,了解这个东东是干啥的,再就是搭建环境,基于dpdk的环境,顺手也就练习dpdk的环境搭建了。 0:总结 1:知道了lvs能实现的功能,挺强大。 2&#xff1…...

Linux标准IO-系统调用详解

1.1 系统调用 系统调用(system call)其实是 Linux 内核提供给应用层的应用编程接口(API),是 Linux 应用层进入内核的入口。不止 Linux 系统,所有的操作系统都会向应用层提供系统调用,应用程序通…...

LeetCode004-两个有序数组的中位数-最优算法代码讲解

最有帮助的视频讲解 【LeetCode004-两个有序数组的中位数-最优算法代码讲解】 https://www.bilibili.com/video/BV1H5411c7oC/?share_sourcecopy_web&vd_sourceafbacdc02063c57e7a2ef256a4db9d2a 时间复杂度 O ( l o g ( m i n ( m , n ) ) ) O(log(min(m,n))) O(log(min(…...

Unity携程Coroutine用法

一.携程概述 官方的解释是,携程允许你可以在多个帧中执行任务。在Unity中,携程是一个可以暂停并在后续帧中从暂停处继续执行的方法。 二.携程写法 下面示例使用携程和Update打印前5帧的时间间隔,展示了携程的基础写法 using System.Colle…...

腾讯百度阿里华为常见算法面试题TOP100(5):子串、堆

之前总结过字节跳动TOP50算法面试题: 字节跳动常见算法面试题top50整理_沉迷单车的追风少年-CSDN博客_字节算法面试题 子串 560.和为K的子数组...

「数据科学」清洗数据,真实数据集中缺失值的查看与处理

在数据科学的工作过程中,我们通过查看数据的基本要素和元数据之后,需要根据查看的结果,考虑是否需要清洗数据。缺失值的查看与处理,就是清洗数据的一部分。如果我们的数据集中,存在缺失值的话,就需要考虑如…...

彩蛋岛 销冠大模型案例

彩蛋岛 销冠大模型案例 任务: https://kkgithub.com/InternLM/Tutorial/tree/camp3/docs/EasterEgg/StreamerSales 视频 https://www.bilibili.com/video/BV1f1421b7Du/?vd_source4ffecd6d839338c9390829e56a43ca8d 项目git地址: https://kkgithu…...

大数据Flink(一百二十一):Flink CDC基本介绍

文章目录 Flink CDC基本介绍 一、什么是CDC 二、CDC的实现机制 三、​​​​​​​​​​​​​​传统 CDC ETL 分析 四、​​​​​​​​​​​​​​基于 Flink CDC 的 ETL 分析 五、​​​​​​​​​​​​​​什么是 Flink CDC 六、​​​​​​​​​​​​​​…...

龙虎榜——20250610

上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...

Go语言多线程问题

打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅

目录 前言 操作系统与驱动程序 是什么,为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中,我们在使用电子设备时,我们所输入执行的每一条指令最终大多都会作用到硬件上,比如下载一款软件最终会下载到硬盘上&am…...