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

news2024/11/14 19:52:08

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上运行工作负载的第一个实验对象

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

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

相关文章

RunnerGo UI自动化使用流程

可以直接进入官网下载开源版或点击右上角体验企业版体验 RunnerGo UI自动化平台 RunnerGo提供从API管理到API性能再到可视化的API自动化、UI自动化测试功能模块,覆盖了整个产品测试周期。 RunnerGo UI自动化基于Selenium浏览器自动化方案构建,内嵌高度…

Java并发线程池原理源码深入分析与调优实战

一,开篇: java中提供了多线程设计的Api,为什么还要用线程池呢? 下来看两个例子: 1. 使用多线程跑十万次 2. 使用线程池跑十万次 使用多线程跑十万次 package com.laoyang.ThreadPool.公开课;import java.util.ArrayL…

让图片完美适应:掌握 CSS 的object-fit与object-position

在CSS中,我们可以使用 background-size 和background-position属性为背景图像设置大小和位置。而 object-fit 和 object-position 属性则允许我们对嵌入的图像(以及其他替代元素,如视频)做类似的操作。在本文中,我们将…

Photoshop(PS)安装教程(图文教程超详细)

目录 一.简介 二.安装步骤 软件:PS版本:2023语言:简体中文大小:3.20G系统要求:Win10(1903)及以上版本,64位操作系统硬件要求:CPU2.0GHz 内存8G(或更高,不支…

蓝桥算法赛(铺地板)

问题描述 小蓝家要装修了,小蓝爸爸买来了很多块(你可以理解为数量无限) 23 规格的地砖,小蓝家的地板是 nm 规格的,小蓝想问你,能否用这些 23 的地砖铺满地板。 铺满地板:对于地板的每个区域&…

Apipost现已支持连接数据库!

Apipost提供了数据库连接功能,在接口调试时可以使用数据库获取入参或进行断言校验。目前的Apipost支持:Mysql、SQL Sever、Oracle、Clickhouse、达梦数据库、PostgreSQL、Redis、MongoDB 8种数据库的连接操作 新建数据库连接: 在「项目设置…

Openssl数据安全传输平台010:jasoncpp 0.10.7的编译 - Windows-vs2022 / Ubuntu/ Centos8 -含测试代码

文章目录 0. 代码仓库1 安装1.1 windows 下的安装1.2 Linux 下的安装1.2.1 相关环境配置问题1.2.2 准备安装1.2.2.1 安装scons1.2.2.2 安装jsoncppUbuntu系统下Centos8系统下 2 编译 c 测试文件: json-test.cpp2.1 配置库文件2.2 配置VS2.3 Winsows系统下cpp文件测试…

java集成海康预览抓图出现内存一直上涨问题

求助:在java 中集成海康sdk后批量抓图出现内存上涨问题,不论是预览后不关闭继续预览,还是预览后关闭预览,然后重新预览都没有解决这个问题(抓图正常),尝试使用第三方解码器ffmpeg来进行解码&…

聊聊今年的秋招

大家好啊,我是董董灿。 又是一年秋招季,身边不少小伙伴反馈,今年的秋招很卷,很多人在刚到9月份的时候就开始投简历到处面试了。 不少同学甚至坐火车去外地参加笔试和面试,来回折腾的同时,也让周围的同学都…

[ACTF2020 新生赛]Include 1

题目环境:超链接,点进去看看你能找到flag吗?除了这些网页什么都没有,但是不当紧,因为我们有一双善于发现的眼睛👀F12瞅瞅无,并无其他等等URL看了吗?发现存在一个参数file&#xff0c…

18 行为型模式-观察者模式

行为模式共有11种: 观察者模式 模板方法模式 策略模式 职责链模式 状态模式 命令模式 中介者模式 迭代器模式 访问者模式 备忘录模式 解释器模式 以上 11 种行为型模式,除了模板方法模式和解释器模式是类行为型模式,其他的全部属于对象行为型…

ShardingSphere-JDBC分库分表快速入门实战

🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:My…

xhadmin多应用Saas框架如何安装情侣飞行棋?

xhadmin是什么? xhadmin 是一套基于最新技术的研发的多应用 Saas 框架,支持在线升级和安装模块及模板,拥有良好的开发框架、成熟稳定的技术解决方案、提供丰富的扩展功能。为开发者赋能,助力企业发展、国家富强,致力于…

设置爱奇艺代理教程

设置爱奇艺代理教程 活泼与直观:设置爱奇艺代理,让你的网络更加自由! 轻松口语化:首先,打开爱奇艺APP,进入设置页面。 设置->网络->代理设置 活泼与直观:在代理设置页面,我…

Vue3富文本编辑器组件封装

近期后台项目有使用富文本编辑器的需求,本文记录一下封装细节 1.富文本组件库参考 TinyMCE - 富文本编辑器里的 Word ,功能想不到的丰富tiptap - 多人在线实时协同编辑CKEditor 5 - 开源免费可商用,行内编辑Quill - 易扩展、轻量级二开、代码…

sql第二次上机作业

1查找借阅了ISBN为“4-6045-1023-4”的借书证号,读者姓名,专业名和借书时间 use tsgl go select Reader.Lno,Rname,Spec,Lend.Bordate FROM Reader,Lend WHERE Reader.LnoLend.Lno AND ISBN 4-6045-1023-42查找借阅了《数据库原理》一书的借阅信息&…

Kubernetes(K8S)快速搭建typecho个人博客

Kubernetes(K8S)快速搭建typecho个人博客 1、准备工作 K8S集群环境,搭建教程参考腾讯云Lighthouse组建跨地域Kubernetes集群 K8S集群面板,搭建教程参考Kubernetes集群管理面板的安装及使用 - 青阳のblog-一个计算机爱好者的个人…

[moeCTF 2023] pwn

总体上来说并不难,不过对于新生来说还是相当好的。循序渐进,很适合PWN入门到放弃。 baby_calculator 就是要算对100个10以内加法(幼儿园的题)练习pwntools和python from pwn import * from hashlib import md5 import string …

android button 按钮,设置左/右小图标,与文字居中距离

参考博客地址 功能点 支持自定义图标与文字的距离支持小图标宽高自定义支持左右自定义小图标 maven { url https://jitpack.io } implementation com.github.CMzhizhe:AppCompatButtonProject:1.0.0<com.gxx.buttonlibrary.DrawableCenterButtonandroid:layout_marginTop&…

基于aop 代理 Sentinel Nacos配置控制包装类实现原理

基于aop & 代理 & Sentinel & Nacos配置控制包装类实现原理 Hi&#xff0c;我是阿昌&#xff0c;今天记录下看sentinel源码结合业务实现的思路基于aop & 代理 & Sentinel & Nacos配置控制包装类实现原理&#xff1b;下面并不会手把手的记录方案的实现…