文档章节

Mysql Explain Type

无敌小杰杰
 无敌小杰杰
发布于 06/17 21:18
字数 654
阅读 15
收藏 1
  • 前言

当我们执行sql,一般都会用Explain来查看sql的效率如何。今天在看sql执行效率的时候,忘记了其中Type的意思,现在在此记录一下。

  • 效率

这里的type指的是访问类型,各个效率高低如下:

all < index < range < index_subquery < unique_subquery < index_merge < ref_or_null < ref < eq_ref < const < system
  • 介绍

下面就开始介绍各个访问类型:

1. all

全表扫描。在大数据量的时候效率极低。

2. index

全索引排序。根据Extra的内容分以下几种情况:

Using Index:覆盖索引,即**只需要**通过索引就可以返回查询所需要的数据
Using Where:查询列未用到索引
Using Index  Using Where:其中的查询列是索引,但是并不是前导列,因此其实是没法用到这个索引的
Null:查询列有些不是索引,需要回表来查询未被索引覆盖的字段(不是纯粹用了索引,也不是完全没用到索引)

3. range

有范围的索引排序。常见的如下:

BETWEEN   AND    <    >    IN    OR

4. index_subquery

非唯一性索引,一般出现在IN查询中。

5. unique_subquery

一般出现在IN查询中。

6. index_merge

使用了索引合并优化。(对多个索引分别进行了条件的查询,最后对这几个查询的结果进行合并交集运算)

7. ref_or_null

类似ref。区别是他会额外的搜索包含null的记录,他会对其进行一些优化。(例如:SELECT * FROM table WHERE age = 18 and name is null)

8. ref

利用查询索引来进行搜索。(非主键以及UNIQUE)

9. eq_ref

查询列是主键或者非NULL的UNIQUE索引,常用在联合查询。(例如:SELECT * FROM ref_table,other_table WHERE ref_table.key_column=other_table.column => ref_table.key_column是主键或者非NULL的UNIQUE索引)

10. const

查询条件是主键或者非NULL的UNIQUE索引,因此结果只有一条,同时优化过程中查询列值会转成常量。

11. system

表中数据只有一行的情况。

12. NULL

不用访问表就可以直接得到结果。(例如:SELECT 1)

  • 最后

写sql的时候多用Explain,容易帮助自己找到写的sql是否有问题,是否可以进一步优化。

在此记录,下次自己也可以方便查找!

© 著作权归作者所有

上一篇: Nio学习
无敌小杰杰
粉丝 3
博文 26
码字总数 14751
作品 0
嘉兴
私信 提问
MySQL 索引 explain索引分析优化

EXPLAIN是MySQL提供的工具,可用于模拟优化器执行SQL查询语句,从而知道MySQL是如何处理SQL语句的,包括表的读取顺序、数据读取操作的操作类型、可能使用的索引、实际使用的索引、表之间的引...

PeakFang-BOK
2018/11/13
0
0
mysql 优化 explain 和show warnings 用法

explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。 使用方法,在select语句前加上explain就可以了: 如: explain select surna...

ashuo
06/12
0
0
MySQL语句explain详解

我们一般再检查一个SQL语句执行效率的时候,通常会首先用explain来看下该语句的相关情况。虽然经常使用,但时候你深刻的理解了其结果中每个字段的含义呢?其中type字段是我们关注的重中之重。...

rewiner22
2016/12/09
0
0
Mysql——explain详细解读

mysql> explain select * from t_order; +----+-------------+---------+------+---------------+------+---------+------+--------+-------+ | id | selecttype | table | type | possiblek......

youxizhe
2014/07/16
0
0
使用Explain分析select语句

explain可以分析某条select语句会查询多少条记录、以怎样的方式查询,以及复杂select的执行顺序,借此可以了解到select语句的性能和查询是如何执行的 如: select子句和from子句,先执行from子...

井然有序
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

由test_decoding学习如何编写PostgreSQL逻辑解码插件

PostgreSQL提供很多接口,允许用户定制自己需要的功能,很多时候文档并不能让我们完全理解和把握它们的使用。如果需要开发一个自己的功能,该如何下手?下边是我作为一名代码搬运工的工作方式...

有理想的猪
36分钟前
2
0
IT兄弟连 Java语法教程 流程控制语句 循环结构语句3

while循环 Java中的另外一种循环是while循环。while循环的语法格式如下: while(条件表达式){ 循环体; } 其中条件表达式定义了控制循环的条件,可以使任何有效的boolean表达式,条件为真时,...

老码农的一亩三分地
47分钟前
2
0
OSChina 周四乱弹 —— 你们倒是救驾啊,别笑啦

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @RISYOII :#今日歌曲推荐# 一荤一素 太年轻的人 他总是不满足 固执地不愿停下 远行的脚步 望着高高的天 走了长长的路 忘了回头看 她有没有哭...

小小编辑
今天
1K
13
idea下springboot 项目在static目录下添加文件不生效

idea下springboot 项目在static目录下添加文件不生效 问题描述 是这样子的,我的项目目录结构如下: 我在static目录下,创建了index.html和aaaa.jpg这两个文件。然后,启动服务访问 http://l...

wotrd
昨天
7
0
k8s1.14 一、环境

1. 4台虚拟机 (CentOS Linux release 7.2.1511 (Core) ) 192.168.130.211 master 192.168.130.212 node1 192.168.130.213 node2 192.168.130.214 node3 2. 设置服务器hostname 2.1 设置本机......

ThomasCheng
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部