读高性能MySQL(第4版)笔记20_Performance Schema和其他

1. 线程
1.1. MySQL服务端是多线程软件。它的每个组件都使用线程
1.2. 每个线程至少有两个唯一标识符
1.2.1. 操作系统线程ID
1.2.2. MySQL内部线程ID
2. 对象类型
2.1. OBJECT_TYPE列
2.2. EVENT
2.3. FUNCTION
2.4. PROCEDURE
2.5. TABLE
2.6. TRIGGER
3. Performance Schema
3.1. 一个经常受到批评的特性
3.1.1. 早期版本的MySQL对其的实现不够理想,导致资源消耗较高
3.2. 提供了有关MySQL服务器内部运行的操作上的底层指标
3.3. 应该启用Performance Schema,按需动态地启用插桩和消费者表,通过它们提供的数据可以解决可能存在的任何问题——查询性能、锁定、磁盘I/O、错误等
3.4. 充分利用sys schema是解决常见问题的捷径。这样做将为你提供一种可以直接从MySQL中测量性能的方法
3.5. 程序插桩(instrument)
3.6. 消费者表(consumer)
3.7. 测量结果存储在Performance Schema数据库的多个表中
3.7.1. MySQL 8.0.25社区版的performance_schema中包含110个表
3.8. 摘要是一种通过删除查询中的变量来聚合查询的方法
3.9. 实例表(Instance)
3.9.1. 实例是指对象实例,用于MySQL安装程序
3.10. 设置表(Setup)
3.10.1. 用于performance_schema的运行时设置
3.11. metadata_locks表保存关于元数据锁的数据
3.12. Performance Schema收集的数据保存在内存中
3.13. 标准MySQL发行版包括一个和performance_schema数据配套使用的sys schema,它全部基于performance_schema上的视图和存储例程组成
3.14. 要启用或禁用Performance Schema,可以将变量performance_schema设置为ON或OFF
3.15. 启用或禁用performance_schema插桩
3.15.1. 使用setup_instruments表
3.15.1.1. 使用UPDATE语句更改instruments表的对应列值
3.15.2. 调用sys schema中的ps_setup_enable_instrument存储过程
3.15.2.1. ps_setup_enable_instrument
3.15.2.2. ps_setup_disable_instrument
3.15.3. 使用performance-schema-instrument启动参数
3.15.3.1. 变量支持performance-schema-instrument='instrument_name=value'这样的语法
3.16. 启用或禁用消费者表
3.16.1. 使用Performance Schema中的setup_consumers表
3.16.2. 调用sys schema中的ps_setup_enable_consumer或ps_setup_disable_consuper存储过程
3.16.3. 使用performance-schema-consumer启动参数
3.17. 事务执行期间会一直持有元数据锁
3.17.1. 要启用元数据锁监测,需要启用wait/lock/meta-data/sql/mdl插桩
4. 升级MySQL
4.1. 新版本和稳定性之间的权衡
4.1.1. MySQL社区的长期成员Stewart Smith创造了著名的dot-20规则
4.1.2. 一款软件在dot-20版本发布之前永远不会真正成熟。
4.2. 进行版本升级是一个有风险的过程
4.2.1. 包括备份所有数据、测试更改,然后运行升级过程
4.3. 大版本的升级可能会让人望而却步
4.4. 升级的原因
4.4.1. 安全漏洞
4.4.1.1. 随着时间的推移,这种可能性会越来越小,但人们仍然有可能在MySQL中发现安全漏洞
4.4.2. 已知的bug
4.4.2.1. 在生产环境中遇到未知或无法解释的行为时,我们建议你确定当前运行的MySQL版本,然后阅读后续版本到最新版本的发布说明
4.4.3. 新功能
4.4.3.1. MySQL并不总是遵循严格的主要(major)/次要(minor)/点(point)的版本发布策略来添加功能
4.4.4. MySQL支持周期的终止
4.4.4.1. 建议保持在受支持的版本内,以便至少仍支持安全修复
4.5. 升级步骤
4.5.1. 制订一个计划
4.5.2. 阅读该版本的发行说明,包括任何微小的更改
4.5.3. 阅读官方文档中的升级说明
4.5.4. 对新版本进行测试
4.5.5. 最后执行升级
4.6. 降级
4.6.1. 对于所有主要和次要的版本变更(例如,从8.0降级到5.7或从5.7降级到5.6),降级的唯一方法是恢复升级前的备份
4.6.2. 自从MySQL 8.0以来,不能再降级点发布版本
4.6.3. 如果你运行的是8.0.25版本,除非导出所有数据并重新导入,否则不能再降级到8.0.24
4.7. 工具
4.7.1. Percona Toolkit提供的工具pt-upgrade
4.8. 最好的使用方法是首先使用慢速查询日志或二进制日志收集最关注的查询
4.9. 与直接登录到每台服务器相比,自动化可以使升级过程易于重复,并且效率更高,而且因出现拼写错误或者到错误的服务器上执行升级而导致意外停机的概率也更低
5. Kubernetes
5.1. 在Kubernetes技术流行之前,许多公司要么完全定制技术栈来供应和管理虚拟机和物理服务器,要么只完成了将资源生命周期管理一小部分的开源项目黏合在一起
5.2. MySQL不应该是在组织中Kubernetes上运行工作负载的第一个实验对象
相关文章:
读高性能MySQL(第4版)笔记20_Performance Schema和其他
1. 线程 1.1. MySQL服务端是多线程软件。它的每个组件都使用线程 1.2. 每个线程至少有两个唯一标识符 1.2.1. 操作系统线程ID 1.2.2. MySQL内部线程ID 2. 对象类型 2.1. OBJECT_TYPE列 2.2. EVENT 2.3. FUNCTION 2.4. PROCEDURE 2.5. TABLE 2.6. TRIGGER 3. Perfor…...
spring cloud Eureka集群模式搭建(IDEA中运行)《二》
上一篇集群配置文件完善 上一篇博客,想必大家都学会了Eureka集群模式的搭建和运行,针对上一篇的配置文件进行了优化,在这里分享给大家。上一篇主要有3个配置文件,分别对应3个不同的服务,这种形式配置文件分别写在了不…...
大模型(LLM)在电商推荐系统的探索与实践
本文对LLM推荐的结合范式进行了梳理和讨论,并尝试将LLM涌现的能力迁移应用在推荐系统之中,利用LLM的通用知识来辅助推荐,改善推荐效果和用户体验。 背景 电商推荐系统(Recommend System,RecSys)是一种基于…...
C语言之指针详解
目录 地址 指针的定义和使用 数组与指针的区别与联系 字符串与指针的用法 C 中的 NULL 指针 指针的算术运算 指向指针的指针 传递指针给函数 从函数返回指针 在学习指针之前,我们先弄清楚一个概念: 地址 地址在计算机内存中是一个唯一的标识符…...
【Java笔记+踩坑】设计模式——原型模式
导航: 【Java笔记踩坑汇总】Java基础JavaWebSSMSpringBootSpringCloud瑞吉外卖/黑马旅游/谷粒商城/学成在线设计模式面试题汇总性能调优/架构设计源码-CSDN博客 目录 零、经典的克隆羊问题(复制10只属性相同的羊) 一、传统方案࿱…...
Flutter GetX使用详解
介绍 GetX是一款功能强大且轻量级的Flutter状态管理和路由管理库。它提供了一种简单而强大的方式来构建Flutter应用程序,无需大量的模板代码。GetX不仅提供了状态管理和路由管理,还包括其他实用工具,如国际化和依赖注入。 在本文中…...
【ARM Coresight 系列文章 3.3 - ARM Coresight SWD 协议详细介绍】
文章目录 1.1 SWD 协议框图1.2 读/写时序及命令1.2.1 SWD 时序1.2.2 SWD 命令详情1.3 芯片探测1.3.1 获取芯片 ID1.4 读/写操作1.1 SWD 协议框图 SWD协议可以配置SoC内部几乎所有的寄存器。时钟信号由SWCLK 管脚输入,数据信号从SWDIO管脚输入输出。首先 HOST 对SW-DP 进行操作…...
作为开发者,可视化开发工具了解一下
你是否为编程世界的各种挑战感到头痛?想要以更高效、简单的方式开发出专业级的项目? JNPF低代码工具正是你苦心寻找的产品!它是一款专为稍微懂一点点编程思想的入门级人员设计的神奇工具,集成了丰富的功能和组件,让你轻…...
Python:实现日历功能
背景 日常生活中,每天都要用到日历,日历成为我们生活中的必需品,那么如何制作日历呢,其实方法有很多,可以直接在excel中制作,也可以手画等等。 学习过编程的朋友,能否想到用Python编写一…...
2.9.C++项目:网络版五子棋对战之业务处理模块的设计
文章目录 一、意义二、功能三、管理(一)客户端请求(二)websocket 四、框架五、完整代码 一、意义 将所有的模块整合在一起,通过网络通信获取到客户端的请求,提供不同的业务处理。 服务器模块,是…...
springboot actuator 常用接口
概述 微服务作为一项在云中部署应用和服务的新技术是当下比较热门话题,而微服务的特点决定了功能模块的部署是分布式的,运行在不同的机器上相互通过服务调用进行交互,业务流会经过多个微服务的处理和传递,在这种框架下࿰…...
知识点滴 - Email地址不区分大小写
电子邮件地址本身对字符大小写不敏感。这意味着实际的电子邮件地址,如 "exampleemail.com",并不区分字母的大小写。无论你输入的是大写字母还是小写字母,它仍然会到达同一个电子邮件账户。例如,如果您的电子邮件地址是 …...
同一个页面同一区域两个el-table在v-if下样式重叠问题
🍉正常情况下在radio切换时两个表格的样式应如下 🍉实际上用v-if显示时会出现以下问题(本该属于时间段相同模块的表格却出现在时间段自定义的表格中) 🍉解决方案: 🍃一、将v-if替换成v-show(…...
ExoPlayer架构详解与源码分析(6)——MediaPeriod
系列文章目录 ExoPlayer架构详解与源码分析(1)——前言 ExoPlayer架构详解与源码分析(2)——Player ExoPlayer架构详解与源码分析(3)——Timeline ExoPlayer架构详解与源码分析(4)—…...
【开题报告】基于Spring Boot的课程在线预约系统的设计与实现
1.引言 随着互联网的发展,线上教育和课程培训变得越来越普遍。然而,很多学生在选择课程时面临一些困扰,例如如何找到适合自己的课程,如何与老师进行预约等。因此,设计一个基于Spring Boot的课程在线预约系统具有重要的…...
React Hooks还有哪些常用的用法?
除了之前提到的 useState、useEffect、useContext、useRef、useMemo 和 useCallback,还有一些其他常用的 React Hooks,它们提供了额外的功能和灵活性。以下是其中一些常见的 React Hooks: 1:useReducer:用于在函数组件中管理复杂的状态逻辑,类似于 Redux 的 reducer。 …...
基于Java的学生学籍管理系统设计与实现(源码+lw+部署文档+讲解等)
文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding) 代码参考数据库参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…...
Java内部类、匿名内部类、嵌套类详解
CONTENTS 1. 创建内部类2. 内部类到外部类的连接3. 在内部类中生成外部类对象的引用4. 匿名内部类5. 嵌套类6. 接口中的类 1. 创建内部类 创建内部类的方式就是把类定义放在一个包围它的类之中: package com.yyj;public class Parcel1 {class Contests {private i…...
【兔子王赠书第3期】《案例学Python(进阶篇)》
文章目录 前言推荐图书本书特色本书目录本书样章本书读者对象粉丝福利丨评论免费赠书尾声 前言 随着人工智能和大数据的蓬勃发展,Python将会得到越来越多开发者的喜爱和应用。因为Python语法简单,学习速度快,大家可以用更短的时间掌握这门语…...
【C刷题】day6
一、选择题 1、以下叙述中正确的是( ) A: 只能在循环体内和switch语句体内使用break语句 B: 当break出现在循环体中的switch语句体内时,其作用是跳出该switch语句体,并中止循环体的执行 C: continue语句的作用是:在…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
WebRTC从入门到实践 - 零基础教程
WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...
mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...
