Mysql 慢查询Sql分析 EXPLAIN分析慢SQL(3)

上一篇:Mysql Sql语句优化,索引失效的情况说明(2)
mysql5.5官方中文文档介绍:
在这里插入图片描述
在这里插入图片描述
通过EXPLAIN分析慢SQL
语法:EXPLAIN SQL语句
在这里插入图片描述

  • select_type:表示SELECT的类型,常见的取值有
    • SIMPLE(简单表,即不使用表连接或者子查询)、
      PRIMARY(主查询,即外层的查询)、
      UNION(UNION中的第二个或者后面的查询语句)、
      SUBQUERY(子查询中的第一个SELECT)等。
  • table:输出结果的表名
  • type:表示MySQL在表中找到所需行的方式,或者叫访问类型,常见的有:
    ALL<index<range<ref<eq_ref <const<system<NULL,从左到右,性能由最差到最好。
    • type=ALL:全表扫描。
    • type=index:索引全扫描,MySQL遍历整个索引来查询。
    • type=range:索引范围扫描,常见于<、<=、>、 >=、 between。
    • type=ref:使用非唯一索引扫描或唯一索引的前缀扫描,返回匹配某个单独值的记录。
    • type=eq_ref:类似ref,区别就在使用的索引是唯一索引,对于每个索引键值,表中只有一条记录匹配,简单来说,就是多表连接中使用primary key或者unique index作为关联条件。
    • type=const/system:单表中最多有一个匹配行,查询起来非常迅速,一般主键primary key或者唯一索引unique index进行的查询,通过唯一索引uk_email访问的时候,类型type为const;而从我们构造的仅有一条记录的a表中检索时,类型type为system。
    • type=NULL:MySQL不用访问表或者索引,就能直接得到结果。类型type还有其他值,如ref_or_null(与ref类似,区别在于条件中包含对NULL的查询)、index_merge(索引合并优化)、unique_subquery(in的后面是一个查询主键字段的子查询)、index_subquery(与unique_subquery类似,区别在于in的后面是查询非唯一索引字段的子查询)
  • possible_keys:表示查询时可能使用的索引。
  • key:表示实际使用的索引。
  • key_len:使用到索引字段的长度。
  • rows:扫描行的数量
  • Extra:执行情况的说明和描述,包含不适合在其他列中显示但是对执行计划非常重要的额外信息。
    Using where:表示优化器除了利用索引来加速访问之外,还需要根据索引回表查询数据

主要参考内容:

  1. Mysql 中文文档
  2. 菜鸟笔记
  3. 参考博客
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值