【MYSQL】5 性能优化

devtools/2024/11/19 0:26:42/

1步骤

在这里插入图片描述

2查看系统性能参数

在MySQL中,可以使用 SHOW STATUS 语句查询一些MySQL数据库服务器的 性能参数 、 执行频率 。
SHOW STATUS语句语法如下:

SHOW [GLOBAL|SESSION] STATUS LIKE ‘参数’;

一些常用的性能参数如下:
• Connections:连接MySQL服务器的次数。
• Uptime:MySQL服务器的上线时间。
• Slow_queries:慢查询的次数。
• Innodb_rows_read:Select查询返回的行数
•Innodb_rows_inserted:执行INSERT操作插入的行数
• Innodb_rows_updated:执行UPDATE操作更新的行数
• Innodb_rows_deleted:执行DELETE操作删除的行数
• Com_select:查询操作的次数。
•Com_insert:插入操作的次数。对于批量插入的 INSERT 操作,只累加一次。
• Com_update:更新操作的次数。
• Com_delete:删除操作的次数。

3. 统计SQL的查询成本:last_query_cost

4. 定位执行慢的 SQL:慢查询日志

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
mysqldumpslow 命令的具体参数如下:
-a: 不将数字抽象成N,字符串抽象成S
-s: 是表示按照何种方式排序:
c: 访问次数
l: 锁定时间
r: 返回记录
t: 查询时间
al:平均锁定时间
ar:平均返回记录数
at:平均查询时间 (默认方式)
ac:平均查询次数
-t: 即为返回前面多少条的数据;
-g: 后边搭配一个正则匹配模式,大小写不敏感的;

举例:我们想要按照查询时间排序,查看前五条 SQL 语句,这样写即可:

[root@bogon ~]# mysqldumpslow -s t -t 5 /var/lib/mysql/atguigu01-slow.log
Reading mysql slow query log from /var/lib/mysql/atguigu01-slow.log
Count: 1 Time=2.39s (2s) Lock=0.00s (0s) Rows=13.0 (13), root[root]@localhost
SELECT * FROM student WHERE name = ‘S’
Count: 1 Time=2.09s (2s) Lock=0.00s (0s) Rows=2.0 (2), root[root]@localhost
SELECT * FROM student WHERE stuno = N
Died at /usr/bin/mysqldumpslow line 162, <> chunk 2.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. 查看 SQL 执行成本:SHOW PROFILE

mysql > show variables like ‘profiling’;
mysql > set profiling = ‘ON’;
mysql > show profiles;

6. 分析查询语句:EXPLAIN ★

在这里插入图片描述

测试表

CREATE TABLE s1 (
id INT AUTO_INCREMENT,
key1 VARCHAR(100),
key2 INT,
key3 VARCHAR(100),
key_part1 VARCHAR(100),
key_part2 VARCHAR(100),
key_part3 VARCHAR(100),
common_field VARCHAR(100),
PRIMARY KEY (id),
INDEX idx_key1 (key1),
UNIQUE INDEX idx_key2 (key2),
INDEX idx_key3 (key3),
INDEX idx_key_part(key_part1, key_part2, key_part3)
) ENGINE=INNODB CHARSET=utf8;CREATE TABLE s2 (
id INT AUTO_INCREMENT,
key1 VARCHAR(100),
key2 INT,
key3 VARCHAR(100),
key_part1 VARCHAR(100),
key_part2 VARCHAR(100),
key_part3 VARCHAR(100),
common_field VARCHAR(100),
PRIMARY KEY (id),
INDEX idx_key1 (key1),
UNIQUE INDEX idx_key2 (key2),
INDEX idx_key3 (key3),
INDEX idx_key_part(key_part1, key_part2, key_part3)
) ENGINE=INNODB CHARSET=utf8;

EXPLAIN各列作用

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

int 4
在这里插入图片描述
varchar(100)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

EXPLAIN四种输出格式

EXPLAIN可以输出四种格式: 传统格式 , JSON格式 , TREE格式 以及 可视化输出 。

EXPLAIN FORMAT=JSON SELECT …
EXPLAIN FORMAT=TREE SELECT …


http://www.ppmy.cn/devtools/104840.html

相关文章

ACL基础笔记

1.定义 ACL&#xff08;Access Control List&#xff0c;访问控制列表&#xff09;是一种用于控制网络访问的技术。它可以根据预先设定的规则&#xff0c;对网络流量进行过滤和控制&#xff0c;从而实现对网络资源的安全保护和管理。 2.使用场景 控制网络访问&#xff1a;可…

CSS 嵌套元素的隐藏规则

简单介绍一下&#xff0c;在 HTML 和 CSS 中&#xff0c;元素大体分为 块级元素、内联元素&#xff08;行内元素&#xff09;、块级内联元素&#xff08;行内块元素&#xff09;。它们有着不同的嵌套规则和特殊之处。 1. 行内元素 行内元素特点&#xff1a;不独占一行、不可设…

数学基础 -- 线性代数之向量空间

向量空间与基变换 1. 向量空间的定义 向量空间&#xff08;Vector Space&#xff09;是指一组具有向量加法和数乘运算的元素的集合&#xff0c;并且这些运算满足以下公理&#xff1a; 加法封闭性&#xff1a;对于任意两个向量 u u u 和 v v v&#xff0c;它们的和 u v u…

无人机 PX4 飞控 | ROS应用层开发:指令(字符串)订阅功能

无人机 PX4 飞控 | ROS应用层开发&#xff1a;指令&#xff08;字符串&#xff09;订阅功能 指令&#xff08;字符串&#xff09;订阅功能代码测试 指令&#xff08;字符串&#xff09;订阅功能 为了通过键盘触发mavros 的不同功能&#xff0c;需要实现一个订阅字符串的功能 该…

【日常记录-Linux】unzip指令

Author&#xff1a;赵志乾 Date&#xff1a;2024-08-28 Declaration&#xff1a;All Right Reserved&#xff01;&#xff01;&#xff01; 1. 简介 unzip是一个在类Unix系统(如Linux、macOS)上广泛使用的命令行工具&#xff0c;用于解压缩.zip格式的文件。.zip是一种广泛支持…

【Go高性能】测试(单元测试、基准测试)

Go测试 一、分类1. 单元测试2. 基准测试 二、基准测试1. 介绍2. 基准测试基本原则3. 使用testing包构建基准测试3.1 执行基准测试3.2 基准测试工作原理3.3 改进基准测试的准确性3.3.1 -benchtime3.3.2 -count3.3.3 -cpu 4. 使用benchstat工具比较基准测试(可跳过&#xff09;4.…

C#上位机使用Microsoft.Office.Interop.Excel和EPPlus库对Excel或WPS表格进行写操作

C#上位机使用Microsoft.Office.Interop.Excel和EPPlus库对Excel或WPS表格进行写操作 一、使用Microsoft.Office.Interop.Excel库 1、通过NuGet包管理器添加引用 按照下图中红框所示进行操作。 需要安装Microsoft.Office.Interop.Excel包 添加Microsoft Office 16.0 Object …

新年伊始,暗网掀起泄露数据发布狂潮

新的一年已经到来&#xff0c;网络犯罪分子的脚步仍然没有停歇。为了庆祝圣诞节&#xff0c;犯罪分子在暗网上发布了大量窃取的数据。这些泄露的数据都被打上了 Free Leaksmas 的标签&#xff0c;犯罪分子将数据作为圣诞礼物进行互相共享。对受害者来说&#xff0c;就没有那么开…