explian使用介绍,explain推行陈设详解

原作地址 

①)、id列数字越大越先进行,假若说数字同样大,那么就从上往下相继试行,id列为null的就表是那是二个结出集,不需求采纳它来实行询问。

997755.com澳门葡京 1

explian使用介绍,explain推行陈设详解。不久前在做管理类别,查询sql不快,
 遵照explain的结果,一步步优化sql,下边正是能够用到的资料,以为轻松明了,转发外人,

 

2)、select_type列常见的有:
A:simple:表示不供给union操作如故不包涵子查询的简练select查询。有连日查询时,外层的查询为simple,且唯有三个
B:primary:2个亟待union操作依然含有子查询的select,位于最外层的单位查询的select_type即为primary。且唯有3个
C:union:union连接的三个select查询,首个查询是dervied派生表,除了第叁个表外,第一个以往的表select_type都是union
D:dependent union:与union同样,出现在union 或union
all语句中,但是这么些查询要碰到外部查询的震慑
E:union result:包蕴union的结果集,在union和union
all语句中,因为它不供给加入查询,所以id字段为null
F:subquery:除了from字句中带有的子查询外,其余地点出现的子查询都或然是subquery
G:dependent subquery:与dependent
union类似,表示这几个subquery的查询要碰着外部表查询的影响
H:derived:from字句中出现的子查询,也号称派生表,其余数据库中或许叫做内联视图或嵌套select

 

多用些函数,if  、case等 收缩子查询

997755.com澳门葡京 2

3)、table
显示的查询表名,若是查询利用了外号,那么那里显得的是外号,假设不关乎对数据表的操作,那么那显得为null,若是显示为尖括号括起来的<derived
N>就表示这几个是一时半刻表,后面包车型大巴N便是实行陈设中的id,表示结果来自于这几个查询发生。借使是尖括号括起来的<union
M,N>,与<derived
N>类似,也是1个目前表,表示那个结果来自于union查询的id为M,N的结果集。

一)、id列数字越大越先实行,若是说数字一样大,那么就从上往下1一实施,id列为null的就表是那是一个结实集,不需求利用它来进行查询。

997755.com澳门葡京 3

 

4)、type
依次从好到差:system,const,eq_ref,ref,fulltext,ref_or_null,unique_subquery,index_subquery,range,index_merge,index,ALL,除了all之外,其余的type都足以利用到目录,除了index_merge之外,其余的type只能够用到二个索引
A:system:表中唯有壹行数据仍然是空表,且只可以用于myisam和memory表。假设是Innodb引擎表,type列在这一个状态普通都以all或然index
B:const:使用唯一索引大概主键,重临记录一定是一行笔录的等值where条件时,经常type是const。其余数据库也称之为唯一索引围观
C:eq_ref:出现在要连接过个表的查询安排中,驱动表只重回1行数据,且这行数据是第二个表的主键或然唯一索引,且务必为not
null,唯一索引和主键是多列时,唯有具有的列都用作比较时才会冒出eq_ref
D:ref:不像eq_ref这样供给连接各样,也未尝主键和唯一索引的需求,只要利用相当条件检索时就大概出现,常见与扶助索引的等值查找。恐怕多列主键、唯一索引中,使用第三个列之外的列作为等值查找也会油但是生,同理可得,重临数据不唯1的等值查找就或然出现。
E:fulltext:全文索引检索,要注意,全文索引的预先级非常高,若全文索引和普通索引同时存在时,mysql不管代价,优先选项接纳全文索引
F:ref_or_null:与ref方法类似,只是增添了null值的比较。实际用的不多。
G:unique_subquery:用于where中的in方式子查询,子查询重回不重复值唯壹值
H:index_subquery:用于in格局子查询利用到了帮忙索引只怕in常数列表,子查询或然回到重复值,可以接纳索引将子查询去重。
I:range:索引范围扫描,常见于选拔>,<,is null,between ,in
,like等运算符的询问中。
J:index_merge:表示查询利用了三个以上的目录,最终取交集或然并集,常见and
,or的准绳使用了差别的目录,官方排序那么些在ref_or_null之后,可是实际上由于要读取所个目录,品质也许超越伍分三时间都不比range
K:index:索引全表扫描,把索引从头到尾扫三遍,常见于采纳索引列就可以拍卖不必要读取数据文件的询问、能够采用索引排序只怕分组的查询。
L:all:这几个便是全表扫描数据文件,然后再在server层举行过滤再次回到符合供给的笔录。

 

1)、id列数字越大越先实行,即便说数字一样大,那么就从上往下各种试行,id列为null的就表是那是一个结出集,不必要选用它来拓展询问。

一)、id列数字越大越先进行,假设说数字同样大,那么就从上往下各样实践,id列为null的就表是那是二个结实集,不需求选拔它来开始展览询问。

5)、possible_keys
询问只怕采纳到的目录都会在此地列出来

2)、select_type列常见的有:

 

 

6)、key
询问真正使用到的目录,select_type为index_merge时,那里或许出现多个以上的目录,别的的select_type那里只会油可是生3个。

A:simple:表示不需求union操作依然不包括子查询的简约select查询。有三番五次查询时,外层的查询为simple,且唯有3个

2)、select_type列常见的有:

2)、select_type列常见的有:

7)、key_len
用来拍卖查询的目录长度,借使是单列索引,那就整个索引长度算进去,倘诺是多列索引,那么查询不必然都能应用到全数的列,具体应用到了有点个列的目录,那里就会臆度进去,未有选取到的列,那里不会计算进去。留意下这么些列的值,算一下您的多列索引总厅长度就知道有未有使用到持有的列了。要专注,mysql的ICP特性使用到的目录不会计入在那之中。其余,key_len只计算where条件用到的目录长度,而排序和分组固然用到了目录,也不会总结到key_len中。

B:primary:贰个亟待union操作如故含有子查询的select,位于最外层的单位查询的select_type即为primary。且唯有一个

A:simple:表示不供给union操作照旧不包括子查询的粗略select查询。有一连查询时,外层的查询为simple,且唯有2个

A:simple:表示不须要union操作照旧不包罗子查询的简短select查询。有连接查询时,外层的询问为simple,且唯有3个

8)、ref
就算是采取的常数等值查询,那里会议及展览示const,若是是接连查询,被驱动表的试行安插那里会显得驱动表的关联字段,如果是规范化使用了表明式恐怕函数,或许规格列发生了内部隐式转换,那里恐怕来得为func

C:union:union连接的五个select查询,第1个查询是dervied派生表,除了第二个表外,第四个现在的表select_type都是union

B:primary:多个必要union操作照旧含有子查询的select,位于最外层的单位查询的select_type即为primary。且唯有二个

B:primary:一个索要union操作依旧含有子查询的select,位于最外层的单位查询的select_type即为primary。且惟有贰个

9)、rows
此间是推行安顿中预计的扫描行数,不是正确值

D:dependent union:与union一样,出现在union 或union
all语句中,不过这些查询要面临外部查询的震慑

C:union:union连接的三个select查询,第三个查询是dervied派生表,除了第3个表外,第二个未来的表select_type都是union

C:union:union连接的多少个select查询,第一个查询是dervied派生表,除了第三个表外,第2个未来的表select_type都是union

10)、extra
本条列能够显示的新闻十分多,有几拾种,常用的有
A:distinct:在select部分应用了distinc关键字
B:no tables used:不带from字句的查询恐怕From dual查询
C:使用not in()情势子查询或not
exists运算符的接二连三查询,那种称为反连接。即,一般连接查询是先查询内表,再查询外表,反连接正是先查询外表,再查询内表。
D:using filesort:排序时心慌意乱利用到目录时,就会产出这些。常见于order
by和group by语句中
E:using
index:查询时不需求回表查询,直接通过索引就足以收获查询的多寡。
F:using join buffer(block nested loop),using join buffer(batched
key
accss):伍.陆.x之后的版本优化关联查询的BNL,BKA特性。首倘使缩短内表的轮回数量以及比较顺序土人参顾查询。
G:using sort_union,using_union,using intersect,using
sort_intersection:
using
intersect:表示使用and的相继索引的口径时,该音讯表示是从管理结果获取交集
using
union:表示使用or连接各类使用索引的规则时,该音信表示从处理结果获取并集
using sort_union和using
sort_intersection:与前方五个关照的接近,只是他俩是出现在用and和or查询消息量大时,先查询主键,然后举行排序合并后,本领读取记录并重临。
H:using
temporary:表示使用了目前表存款和储蓄中间结果。临时表能够是内部存款和储蓄器一时半刻表和磁盘暂时表,施行铺排中看不出来,需求查阅status变量,used_tmp_997755.com澳门葡京 ,table,used_tmp_disk_table才具看出来。
I:using
where:表示存款和储蓄引擎重临的笔录并不是负有的都满意查询条件,供给在server层实行过滤。查询条件中分为限制条件和检讨标准,五.6事先,存款和储蓄引擎只好依附限制条件扫描数据并赶回,然后server层依据检查标准进行过滤再回到真正适合查询的数据。五.六.x将来协助ICP本性,能够把检查标准也下推到存款和储蓄引擎层,不适合检查标准和界定条件的数码,直接不读取,那样就大大减少了仓库储存引擎扫描的笔录数据。extra列展现using
index condition
J:firstmatch(tb_name):伍.6.x始发引入的优化子查询的新特征之一,常见于where字句含有in()类型的子查询。借使内表的数据量非常大,就或许现身这么些
K:loosescan(m..n):伍.6.x之后引进的优化子查询的新特点之一,在in()类型的子查询中,子查询再次回到的或是有重复记录时,就可能现身那个

E:union result:包括union的结果集,在union和union
all语句中,因为它不需求参与查询,所以id字段为null

D:dependent union:与union一样,出今后union 或union
all语句中,不过那一个查询要境遇外部查询的熏陶

D:dependent union:与union同样,出现在union 或union
all语句中,不过那几个查询要受到外部查询的熏陶

除外那几个之外,还有诸多查询数据字典库,实行布署经过中就意识不恐怕存在结果的有的提示音信

F:subquery:除了from字句中带有的子查询外,其余位置出现的子查询都也许是subquery

E:union result:包含union的结果集,在union和union
all语句中,因为它不需求参预查询,所以id字段为null

E:union result:包蕴union的结果集,在union和union
all语句中,因为它不须求插手查询,所以id字段为null

11)、filtered
使用explain
extended时会出现那一个列,5.7随后的版本暗中认可就有其一字段,不供给使用explain
extended了。那么些字段表示存款和储蓄引擎再次来到的多寡在server层过滤后,剩下多少满意查询的笔录数据的比重,注意是比例,不是实际记录数。

G:dependent subquery:与dependent
union类似,表示这些subquery的询问要受到外部表查询的影响

F:subquery:除了from字句中涵盖的子查询外,别的地点出现的子查询都可能是subquery

F:subquery:除了from字句中蕴藏的子查询外,其余地点出现的子查询都也许是subquery

H:derived:from字句中现身的子查询,也称为派生表,别的数据库中大概叫做内联视图或嵌套select

G:dependent subquery:与dependent
union类似,表示那一个subquery的询问要蒙受外部表查询的影响

G:dependent subquery:与dependent
union类似,表示那一个subquery的查询要遭到外部表查询的震慑

 

H:derived:from字句中冒出的子查询,也号称派生表,别的数据库中或然叫做内联视图或嵌套select

H:derived:from字句中冒出的子查询,也称之为派生表,其余数据库中也许叫做内联视图或嵌套select

3)、table

 

 

来得的询问表名,假诺查询利用了小名,那么那里展示的是别称,若是不关乎对数据表的操作,那么那展现为null,要是展现为尖括号括起来的<derived
N>就意味着那一个是权且表,前边的N正是进行布署中的id,表示结果来自于那么些查询产生。假诺是尖括号括起来的<union
M,N>,与<derived
N>类似,也是二个权且表,表示这一个结果来自于union查询的id为M,N的结果集。

3)、table

3)、table

 

浮现的查询表名,借使查询利用了小名,那么那里显得的是小名,假如不关乎对数据表的操作,那么那显得为null,倘诺显示为尖括号括起来的<derived
N>就表示这么些是暂且表,前边的N正是实行安排中的id,表示结果来自于这一个查询产生。假诺是尖括号括起来的<union
M,N>,与<derived
N>类似,也是1个暂时表,表示这几个结果来自于union查询的id为M,N的结果集。

突显的查询表名,倘使查询利用了别称,那么那里展现的是别称,假诺不涉及对数据表的操作,那么那显得为null,假设呈现为尖括号括起来的<derived
N>就表示这些是一时半刻表,前面的N正是推行安插中的id,表示结果来自于那一个查询产生。假设是尖括号括起来的<union
M,N>,与<derived
N>类似,也是一个暂且表,表示这些结果来自于union查询的id为M,N的结果集。

4)、type

 

 

逐一从好到差:system,const,eq_ref,ref,fulltext,ref_or_null,unique_subquery,index_subquery,range,index_merge,index,ALL,除了all之外,其余的type都能够动用到目录,除了index_merge之外,别的的type只好够用到2个目录

4)、type

4)、type

A:system:表中惟有壹行数据照旧是空表,且只可以用于myisam和memory表。假如是Innodb引擎表,type列在这几个状态不以为奇都以all恐怕index

依次从好到差:system,const,eq_ref,ref,fulltext,ref_or_null,unique_subquery,index_subquery,range,index_merge,index,ALL,除了all之外,别的的type都得以动用到目录,除了index_merge之外,其他的type只好够用到三个目录

各种从好到差:system,const,eq_ref,ref,fulltext,ref_or_null,unique_subquery,index_subquery,range,index_merge,index,ALL,除了all之外,别的的type都得以采纳到目录,除了index_merge之外,别的的type只能用到1个索引

B:const:使用唯一索引恐怕主键,重返记录一定是一行记录的等值where条件时,经常type是const。别的数据库也称为唯一索引围观

A:system:表中唯有1行数据依旧是空表,且只可以用于myisam和memory表。尽管是Innodb引擎表,type列在那一个地方屡见不鲜都以all只怕index

A:system:表中唯有1行数据或然是空表,且只好用于myisam和memory表。借使是Innodb引擎表,type列在那一个场所习认为常都以all也许index

C:eq_ref:出现在要一而再过个表的询问布置中,驱动表只重回1行数据,且那行数据是第三个表的主键或然唯一索引,且必须为not
null,唯一索引和主键是多列时,唯有具有的列都用作相比较时才会冒出eq_ref

B:const:使用唯一索引可能主键,重回记录一定是一行记录的等值where条件时,日常type是const。其余数据库也号称唯一索引围观

B:const:使用唯一索引可能主键,重回记录一定是1行记录的等值where条件时,平时type是const。别的数据库也叫做唯一索引围观

D:ref:不像eq_ref那样须求连接各类,也未有主键和唯一索引的渴求,只要采纳极度条件检索时就只怕出现,常见与协理索引的等值查找。或然多列主键、唯一索引中,使用第二个列之外的列作为等值查找也会油可是生,综上可得,再次回到数据不唯一的等值查找就大概出现。

C:eq_ref:出现在要一连过个表的查询陈设中,驱动表只重回一行数据,且那行数据是第一个表的主键恐怕唯一索引,且必须为not
null,唯一索引和主键是多列时,唯有具备的列都用作相比时才会产出eq_ref

C:eq_ref:出现在要延续过个表的查询安插中,驱动表只再次回到壹行数据,且那行数据是第三个表的主键大概唯一索引,且务必为not
null,唯一索引和主键是多列时,唯有具备的列都用作相比较时才会现出eq_ref

E:fulltext:全文索引检索,要留意,全文索引的先行级异常高,若全文索引和普通索引同时设有时,mysql不管代价,优先选项接纳全文索引

D:ref:不像eq_ref那样需求连接种种,也未有主键和唯一索引的渴求,只要选用非常条件检索时就恐怕出现,常见与协理索引的等值查找。大概多列主键、唯一索引中,使用第四个列之外的列作为等值查找也会并发,同理可得,再次来到数据不唯一的等值查找就大概出现。

D:ref:不像eq_ref那样须求连接各样,也未尝主键和唯一索引的要求,只要使用分外条件检索时就大概出现,常见与扶持索引的等值查找。或然多列主键、唯一索引中,使用第一个列之外的列作为等值查找也会产出,由此可知,再次来到数据不唯一的等值查找就恐怕现身。

F:ref_or_null:与ref方法类似,只是增添了null值的可比。实际用的不多。

E:fulltext:全文索引检索,要专注,全文索引的预先级非常高,若全文索引和普通索引同时存在时,mysql不管代价,优先选项选用全文索引

E:fulltext:全文索引检索,要留心,全文索引的事先级非常高,若全文索引和普通索引同时设有时,mysql不管代价,优先挑选使用全文索引

G:unique_subquery:用于where中的in情势子查询,子查询再次回到不重复值唯1值

F:ref_or_null:与ref方法类似,只是扩充了null值的比较。实际用的不多。

F:ref_or_null:与ref方法类似,只是扩大了null值的可比。实际用的不多。

H:index_subquery:用于in方式子查询利用到了帮助索引大概in常数列表,子查询恐怕回到重复值,能够接纳索引将子查询去重。

G:unique_subquery:用于where中的in方式子查询,子查询重回不重复值唯1值

G:unique_subquery:用于where中的in方式子查询,子查询重返不重复值唯壹值

I:range:索引范围扫描,常见于采纳>,<,is null,between ,in
,like等运算符的询问中。

H:index_subquery:用于in格局子查询利用到了援助索引大概in常数列表,子查询恐怕回到重复值,能够选取索引将子查询去重。

H:index_subquery:用于in方式子查询利用到了救助索引大概in常数列表,子查询大概回到重复值,能够利用索引将子查询去重。

J:index_merge:表示查询利用了两个以上的目录,最终取交集或然并集,常见and
,or的标准化使用了差别的目录,官方排序那一个在ref_or_null之后,然则事实上由于要读取所个目录,质量或许大多数时日都比不上range

I:range:索引范围扫描,常见于采纳>,<,is null,between ,in
,like等运算符的查询中。

I:range:索引范围扫描,常见于选取>,<,is null,between ,in
,like等运算符的询问中。

K:index:索引全表扫描,把索引从头到尾扫一次,常见于选用索引列就能够拍卖不须求读取数据文件的询问、能够选择索引排序恐怕分组的询问。

J:index_merge:表示查询利用了七个以上的目录,最后取交集或许并集,常见and
,or的典型使用了不一致的目录,官方排序这么些在ref_or_null之后,不过其实由于要读取所个目录,品质恐怕大多数时刻都比不上range

J:index_merge:表示查询利用了多少个以上的目录,最后取交集也许并集,常见and
,or的原则使用了区别的目录,官方排序那么些在ref_or_null之后,不过实际由于要读取所个目录,质量可能大部分光阴都不如range

L:all:那么些正是全表扫描数据文件,然后再在server层实行过滤再次来到符合要求的笔录。

K:index:索引全表扫描,把索引从头到尾扫三次,常见于采取索引列就足以管理不需求读取数据文件的查询、能够利用索引排序也许分组的询问。

K:index:索引全表扫描,把索引从头到尾扫二遍,常见于采纳索引列就足以管理不要求读取数据文件的查询、能够选拔索引排序恐怕分组的询问。

 

L:all:那一个就是全表扫描数据文件,然后再在server层进行过滤再次回到符合须求的笔录。

L:all:这几个正是全表扫描数据文件,然后再在server层进行过滤重返符合供给的笔录。

5)、possible_keys

 

 

查询或许利用到的目录都会在那边列出来

5)、possible_keys

5)、possible_keys

 

询问恐怕使用到的目录都会在此处列出来

询问大概接纳到的目录都会在此间列出来

6)、key

 

 

询问真正使用到的目录,select_type为index_merge时,那里恐怕出现五个以上的目录,别的的select_type那里只会冒出二个。

6)、key

6)、key

 

询问真正使用到的目录,select_type为index_merge时,那里只怕出现多少个以上的目录,其余的select_type那里只会产出二个。

询问真正使用到的目录,select_type为index_merge时,那里恐怕出现多少个以上的目录,其余的select_type那里只会油不过生二个。

7)、key_len

 

 

用于拍卖查询的目录长度,纵然是单列索引,那就全数索引长度算进去,假如是多列索引,那么查询不必然都能应用到具有的列,具体行使到了多少个列的目录,那里就会企图进去,未有动用到的列,那里不会一个钱打二十七个结进去。留意下那几个列的值,算一下你的多列索引总委员长度就明白有未有应用到持有的列了。要注意,mysql的ICP天性使用到的目录不会计入个中。其它,key_len只计算where条件用到的目录长度,而排序和分组固然用到了目录,也不会持筹握算到key_len中。

7)、key_len

7)、key_len

 

用来拍卖查询的目录长度,借使是单列索引,那就整个索引长度算进去,如若是多列索引,那么查询不自然都能选拔到独具的列,具体使用到了稍稍个列的目录,那里就会持筹握算进去,没有使用到的列,那里不会总括进去。留意下那几个列的值,算一下你的多列索引总厅长度就知道有未有选拔到独具的列了。要留意,mysql的ICP天性使用到的目录不会计入个中。其余,key_len只总结where条件用到的目录长度,而排序和分组固然用到了目录,也不会妄图到key_len中。

用来拍卖查询的目录长度,假如是单列索引,这就全部索引长度算进去,借使是多列索引,那么查询不自然都能采取到独具的列,具体选择到了稍稍个列的目录,那里就会盘算进去,未有利用到的列,那里不会猜测进去。留意下那几个列的值,算一下你的多列索引总市长度就通晓有未有应用到独具的列了。要专注,mysql的ICP性子使用到的目录不会计入个中。别的,key_len只总括where条件用到的目录长度,而排序和分组就算用到了目录,也不会臆度到key_len中。

8)、ref

 

 

万1是利用的常数等值查询,那里会彰显const,即便是接2连三查询,被驱动表的施行安排这里会来得驱动表的关系字段,假设是规范化使用了表明式可能函数,可能条件列发生了当中隐式调换,那里恐怕来得为func

8)、ref

8)、ref

 

假定是使用的常数等值查询,那里会显示const,倘诺是接连查询,被驱动表的试行计划那里会来得驱动表的关系字段,要是是标准使用了表明式恐怕函数,大概规格列发生了在这之中隐式调换,那里可能来得为func

如如果运用的常数等值查询,那里会议及展览示const,假设是连连查询,被驱动表的实行布署那里会显得驱动表的关联字段,如若是基准使用了表明式也许函数,只怕规格列产生了在这之中隐式转换,那里也许来得为func

9)、rows

 

 

那里是实行布置中预计的扫描行数,不是准确值

9)、rows

9)、rows

 

此处是实行布置中测度的扫视行数,不是准确值

此间是实行布署中估摸的扫视行数,不是正确值

10)、extra

 

 

本条列能够展现的消息万分多,有几十种,常用的有

10)、extra

10)、extra

A:distinct:在select部分使用了distinc关键字

本条列能够显示的音讯分外多,有几拾种,常用的有

本条列能够体现的新闻非常多,有几10种,常用的有

B:no tables used:不带from字句的查询恐怕From dual查询

A:distinct:在select部分行使了distinc关键字

A:distinct:在select部分采纳了distinc关键字

C:使用not in()方式子查询或not
exists运算符的连日查询,那种称为反连接。即,一般连接查询是先查询内表,再查询外表,反连接正是先查询外表,再查询内表。

B:no tables used:不带from字句的查询恐怕From dual查询

B:no tables used:不带from字句的询问或然From dual查询

D:using filesort:排序时胸中无数利用到目录时,就相会世这一个。常见于order
by和group by语句中

C:使用not in()格局子查询或not
exists运算符的连日查询,那种称为反连接。即,一般连接查询是先查询内表,再查询外表,反连接正是先查询外表,再查询内表。

C:使用not in()情势子查询或not
exists运算符的总是查询,那种称为反连接。即,一般连接查询是先查询内表,再查询外表,反连接正是先查询外表,再查询内表。

E:using index:查询时不需求回表查询,间接通过索引就足以获得查询的数目。

D:using filesort:排序时不恐怕运用到目录时,就会油可是生那个。常见于order
by和group by语句中

D:using filesort:排序时手足无措使用到目录时,就会产出那么些。常见于order
by和group by语句中

F:using join buffer(block nested loop),using join buffer(batched
key
accss):5.6.x之后的本子优化关联合检查询的BNL,BKA天性。首假如缩减内表的轮回数量以及比较顺序地牯牛草顾查询。

E:using index:查询时不必要回表查询,直接通过索引就足以赢得查询的数据。

E:using index:查询时不供给回表查询,直接通过索引就足以得到查询的多少。

G:using sort_union,using_union,using intersect,using
sort_intersection:

F:using join buffer(block nested loop),using join buffer(batched
key
accss):伍.6.x之后的本子优化关联合检查询的BNL,BKA性格。重借使减掉内表的轮回数量以及比较顺序地牯牛草顾查询。

F:using join buffer(block nested loop),using join buffer(batched
key
accss):5.陆.x之后的版本优化关联合检查询的BNL,BKA性格。主假诺削减内表的大循环数量以及相比较顺序甘露子顾查询。

using
intersect:表示使用and的相继索引的规格时,该新闻表示是从管理结果获取交集

G:using sort_union,using_union,using intersect,using
sort_intersection:

G:using sort_union,using_union,using intersect,using
sort_intersection:

using
union:表示使用or连接各类使用索引的标准化时,该音讯表示从管理结果获取并集

using
intersect:表示使用and的逐一索引的基准时,该音讯表示是从管理结果获取交集

using
intersect:表示使用and的次第索引的原则时,该新闻表示是从管理结果获取交集

using sort_union和using
sort_intersection:与前方多少个照拂的接近,只是她们是出现在用and和or查询新闻量大时,先查询主键,然后开始展览排序合并后,技术读取记录并赶回。

using
union:表示使用or连接各类使用索引的原则时,该音讯表示从管理结果获取并集

using
union:表示使用or连接各样使用索引的口径时,该音信表示从处理结果获取并集

H:using
temporary:表示使用了一时表存款和储蓄中间结果。目前表能够是内存目前表和磁盘权且表,试行安插中看不出来,须求查阅status变量,used_tmp_table,used_tmp_disk_table能力看出来。

using sort_union和using
sort_intersection:与前方几个照望的好像,只是他俩是出新在用and和or查询音讯量大时,先查询主键,然后进行排序合并后,技能读取记录并赶回。

using sort_union和using
sort_intersection:与目前三个关照的接近,只是他们是出新在用and和or查询新闻量大时,先查询主键,然后举行排序合并后,技术读取记录并再次来到。

I:using
where:表示存款和储蓄引擎重回的记录并不是负有的都满意查询条件,须求在server层进行过滤。查询条件中分成限制条件和自己争辩标准,5.陆以前,存款和储蓄引擎只好依照限制规范扫描数据并再次来到,然后server层依照检查标准实行过滤再回去真正符合查询的数额。5.陆.x从此帮助ICP本性,能够把检查标准也下推到存款和储蓄引擎层,不吻合检查规范和限量条件的多寡,间接不读取,那样就大大减弱了蕴藏引擎扫描的笔录数据。extra列展现using
index condition

H:using
temporary:表示使用了目前表存款和储蓄中间结果。一时半刻表能够是内部存款和储蓄器一时半刻表和磁盘一时半刻表,实施安顿中看不出来,须求查阅status变量,used_tmp_table,used_tmp_disk_table才干看出来。

H:using
temporary:表示使用了暂时表存储中间结果。一时半刻表能够是内部存款和储蓄器目前表和磁盘一时表,试行安插中看不出来,供给查阅status变量,used_tmp_table,used_tmp_disk_table技能看出来。

J:firstmatch(tb_name):伍.陆.x始于引入的优化子查询的新本性之壹,常见于where字句含有in()类型的子查询。假使内表的数据量十分的大,就大概出现那些

I:using
where:表示存款和储蓄引擎重临的记录并不是全数的都知足查询条件,须要在server层实行过滤。查询条件中分为限制条件和自己议论规范,伍.六以前,存款和储蓄引擎只好依附限制条件扫描数据并回到,然后server层根据检查标准举办过滤再回到真正适合查询的多寡。5.陆.x现在帮忙ICP性情,能够把检查规范也下推到存款和储蓄引擎层,不切合检查标准和限量规范的数目,直接不读取,那样就大大缩短了蕴藏引擎扫描的笔录数据。extra列突显using
index condition

I:using
where:表示存储引擎重临的笔录并不是负有的都满意查询条件,要求在server层进行过滤。查询条件中分为限制规范和检讨标准,5.陆此前,存款和储蓄引擎只可以依靠限制规范扫描数据并赶回,然后server层遵照检查规范举办过滤再回来真正适合查询的数额。五.6.x过后帮忙ICP天性,能够把检查规范也下推到存款和储蓄引擎层,不相符检查规范和界定规范的数据,直接不读取,那样就大大减弱了仓库储存引擎扫描的笔录数据。extra列展现using
index condition

K:loosescan(m..n):⑤.陆.x之后引进的优化子查询的新特点之1,在in()类型的子查询中,子查询重回的或许有重复记录时,就恐怕出现这一个

J:firstmatch(tb_name):5.陆.x初步引进的优化子查询的新特征之一,常见于where字句含有in()类型的子查询。假若内表的数据量不小,就恐怕出现那么些

J:firstmatch(tb_name):5.陆.x上马引入的优化子查询的新特色之一,常见于where字句含有in()类型的子查询。若是内表的数据量相当大,就大概出现那个

 

K:loosescan(m..n):五.陆.x之后引进的优化子查询的新天性之1,在in()类型的子查询中,子查询重回的只怕有重复记录时,就可能现身那些

K:loosescan(m..n):5.6.x之后引进的优化子查询的新性子之1,在in()类型的子查询中,子查询再次来到的大概有重复记录时,就恐怕出现这几个

除去那些之外,还有众多查询数据字典库,实施陈设经过中就意识不大概存在结果的有的提醒音信

 

 

 

除了那些之外,还有众多询问数据字典库,实行安插经过中就意识不容许存在结果的部分提示音信

而外那个之外,还有众多查询数据字典库,试行安插经过中就意识不恐怕存在结果的1对提醒音信

11)、filtered

 

 

使用explain
extended时会出现那几个列,5.七过后的本子暗许就有其一字段,不要求使用explain
extended了。这些字段表示存款和储蓄引擎再次回到的数目在server层过滤后,剩下多少满意查询的记录数据的比例,注意是比例,不是具体记录数。

11)、filtered

11)、filtered

使用explain
extended时会现身这几个列,五.7事后的本子默许就有那些字段,不要求使用explain
extended了。这些字段表示存款和储蓄引擎再次回到的多少在server层过滤后,剩下多少满足查询的记录数据的百分比,注意是比例,不是切实可行记录数。

使用explain
extended时会出现这些列,五.7自此的本子默许就有那个字段,不须要使用explain
extended了。那一个字段表示存款和储蓄引擎再次来到的数量在server层过滤后,剩下多少满足查询的笔录数据的比重,注意是比例,不是具体记录数。

 

 

 

 

原创:转载于

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website