mysql中的extra是什么意思_mysqlexplain中的type列含义和extra列的含义

更新时间:2023-07-07 15:53:12 阅读: 评论:0

mysql中的extra是什么意思_mysqlexplain中的type列含义和
gerberextra列的含义
刷赞平台推广网站便宜
很多朋友在⽤mysql进⾏调优的时候都肯定会⽤到explain来看lect语句的执⾏情况,这⾥简单介绍结果中两个列的含义。
1 type列
官⽅的说法,说这列表⽰的是“访问类型”,更通俗⼀点就是:mysql找到需要的数据⾏的⽅式。⼀下就是从效率最差到最好顺序分别介绍下:
高管英文
All 这个就是所谓的全表扫描,没有⽤到任何的index,mysql就是从头到尾把整个表遍历⼀边,找到所需要的数据⾏。效率是最差的。如下图,这个表中的urtype不是索引,这个查询中没有⽤到任何索引,所以就出现了全表扫描的结果。矮个子女生穿衣搭配
index type列中出现了index,含义仅仅是局限在扫描全表的顺序是按照索引顺序扫描的,仅仅是按索引顺序去扫描的。它的有点是避免了排序,因为索引就是已经排序好的,缺点就是要承担按照索引次序读
取整张表的开销。如下,这个查询中order by id,id是这个表的索引,但是因为没有在where中出现任何的索引列,所以它也只是索引顺去扫描了全表。(这⾥强调⼀下,你的查询语句中where条件中没有索引,只是order by 的时候⽤了index,⽽且没有⽤limit限制,type这⾥显⽰的是all,也就是这种情况下没有limit,还是扫⾯全表的)
掉发吃什么好
exceptrange 这个⼀般就是在你的where语句中出现了between或者“>”这种符号的时候会出现这个。这种范围扫描索引扫描⽐全表扫描要好,因为它只需要开始于索引的某⼀点,⽽结束语另⼀点,不⽤扫描全部索引。
ref 这也是⼀种索引访问,它返回所有匹配某个单独值的⾏,然⽽,它可能会找到多个符合条件的⾏,所以他应该属于查找和扫描的混合体。
在过去的英文const,system 当mysql能对查询的部分就⾏优化,并且转换成⼀个常量的时候,它就会使⽤这种访问类型了。⽐如你把⼀⾏的主键当做where条件放进去,那mysql就可以把它转换成⼀个常量,然后查询。如下图:uid是主键,作为where条件就能出现这个效率最⾼的查询结果。
2016年考研英语答案2 extra列
extra列中出现的信息⼀般不是太重要,但是还是有很多信息我们可以从这⾥⾯获取到:
using index:出现这个说明mysql使⽤了覆盖索引,避免访问了表的数据⾏,效率不错!
文件句柄
using where:这说明服务器在存储引擎收到⾏后将进⾏过滤。有些where中的条件会有属于索引的列,当它读取使⽤索引的时候,就会被过滤,所以会出现有些where语句并没有在extra列中出现using where这么⼀个说明。
using temporary:这意味着mysql对查询结果进⾏排序的时候使⽤了⼀张临时表。
using filesort:这个说明mysql会对数据使⽤⼀个外部的索引排序,⽽不是按照表内的索引顺序进⾏读取。
>vsi

本文发布于:2023-07-07 15:53:12,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/170089.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:扫描   出现   数据   查询   条件   全表
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图