mysql笔记—sql性能分析

1.查看数据库各个语句的执行频次

复制代码
show global/session status like 'com__'

2.慢查询

默认没有开启,需要手动开启(在/etc/my.cnf中开启)

开启后在localhost-slow.log中可以查询到慢查询的语句的相关信息:

3.explain

用法:直接在dql语句前面加explain


解释:

1.id:id越大越先执行,id相同越靠前越先执行

2.select type

表示 SELECT 的类型,常见的取值有SIMPLE(简单表,即不使用表连接或者子查询)、PRIMARY(主查询,即外层的查询)、UNION(UNION中的第二个或者后面的查询语句)、SUBOUERY(SELECT/WHERE之后包含了子查询)等

3.type

表示连接类型,性能由好到差的连接类型为NULL、system、const(主键等唯一索引)、eq_ref、ref(非唯一索引)、range、index(全索引扫描)、all(全表扫描)

4.possible_key

可能用到的索引

5.Key

实际使用的索引,如果为NULL,则没有使用索引

6.Key_len

表示索引中使用的字节数,该值为索引字段最大可能长度,并非实际使用长度,在不损失精确性的前提下,长度越短越好

7.extra

一些额外信息:

**Using index:**用了覆盖索引,也就是说,查询所需的数据可以直接从索引中获取

**Using index condition:**用了部分覆盖索引,但是所需要的数据不能完全从索引中获取

**Using where:**使用了where,但是无法通过覆盖索引直接查找到

**Using temporary:**使用了临时表,可能存在分组、排序、去重等操作

相关推荐
前进的李工1 天前
飞书企业知识库设计+后端高频八股
数据库·redis·后端·mysql·性能优化·飞书·rag
Young Doro1 天前
从 DV 表示到 MI 下界,再到“置换技巧“(含“指数倾斜“完整推导)
笔记
泡海椒1 天前
JQuick-SQL CSV 文件数据接入:转换为内存表后再查询
数据库·sql
为思念酝酿的痛1 天前
MySQL数据类型
数据库·mysql
smilejingwei1 天前
时间列转行再转置为新交叉表
sql·sqlazy·ai写sql·可信sql
泡海椒1 天前
JQuick-SQL 与关系型数据库集成:应用层读取后注册查询
数据库·sql
ACP广源盛139246256731 天前
PCIe Gen3 交换芯片选型笔记:中小通道扩展方案 IX7012@ACP 评估
笔记·硬件架构·硬件工程·pcie·国产芯片
程序员塔塔喵1 天前
【MySQL篇|第二篇】慢SQL及其优化手段
sql·mysql·慢sql优化
职豚求职小程序刷题1 天前
国投证券笔试测评题型揭秘
笔记
Nuanyt1 天前
LeetCode Hot100 刷题笔记 · 普通数组专题
java·笔记·算法·leetcode