MySQL性能分析(四)

MySQL query optimizer
在这里插入图片描述
MySQL 常见的瓶颈

1.CPU:CPU在饱和的时候一般发生在,数据装入内存或者从磁盘上读取数据的时候。
2.IO:磁盘I/O瓶颈发生在装入的数据远大于内存容量的时候。
3.服务器硬件的性能瓶颈:top,free,iostat和vmstat来检查系统性能

Explain

是什么?
使用explain关键字可以模拟优化器执行SQL语句,从而知道MySQL是如何处理你的SQL语句的。可以分析你的查询语句的结构以及性能的瓶颈。

能干嘛?
1.表的读取顺序。
2.数据读取的操作类型。
3.那些索引可以使用。
4.那些索引实际被使用。
5.表之前的引用。
6.每张表有多少行被优化器查询。

怎么玩?
Explain + SQL语句。

执行计划包含的信息:
在这里插入图片描述

各个字段的解释:

id

select查询的序列号,表示查询中执行select的子句或操作表的顺序。
三种情况:
1.id相同,执行顺序由上至下。
在这里插入图片描述
2.id不同,如果是子查询id的序号会递增,id值越大优先级越高,越先先被执行。
在这里插入图片描述
3.id相同不同,同时存在。
在这里插入图片描述

select_type

有哪些type:
在这里插入图片描述
是什么:用来分别查询的类型,主要用于区别普通查询、联合查询、子查询等

1.simple:简单的select查询,查询中不包含子查询或者union。
2.primary:查询中包含任何复杂的子部分,最外层查询的标记。
3.subquery:在select或者where中包含子查询。
4.derived:在from列表中包含子查询被标记为derived(衍生),MySQL会递归执行这些子查询,把结果放在临时表里。
5.union:若第二个select出现在union之后,则标记为union;若union包含在from子句的子查询中,外层select将标记为derived
6.union result:从union表获取结果的select。

table

显示这一行的数据是关于那张表。

type

All
在这里插入图片描述

possible_keys

显示可能应用在这张表中的索引。查询涉及到字段上若存在的索引,则该索引将被列出,但不一定被查询实际使用

key

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

key_len

在这里插入图片描述

ref

在这里插入图片描述

rows

在这里插入图片描述

Extra

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值