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:**使用了临时表,可能存在分组、排序、去重等操作

相关推荐
优雅的潮叭29 分钟前
c++ 学习笔记之 shared_ptr
c++·笔记·学习
claider44 分钟前
Vim User Manual 阅读笔记 usr_08.txt Splitting windows 窗口分割
笔记·编辑器·vim
am心1 小时前
学习笔记-用户下单
笔记·学习
千层冷面2 小时前
数据库分库分表
java·数据库·mysql·oracle
香气袭人知骤暖4 小时前
SQL慢查询常见优化步骤
android·数据库·sql
Star Learning Python4 小时前
MySQL日期时间的处理函数
数据库·sql
清风拂山岗 明月照大江5 小时前
MySQL运维
运维·数据库·mysql
进击的CJR5 小时前
redis哨兵实现主从自动切换
mysql·ffmpeg·dba
crossaspeed5 小时前
MySql三大日志——(八股)
数据库·mysql
要做朋鱼燕5 小时前
【AES加密专题】3.工具函数的编写(1)
笔记·密码学·嵌入式·aes