在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

mysql执行计划指的是什么

129次阅读
没有评论

共计 3565 个字符,预计需要花费 9 分钟才能阅读完成。

这篇文章主要讲解了“mysql 执行计划指的是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“mysql 执行计划指的是什么”吧!

在 mysql 中,执行计划是数据库提供给用户的一套对 sql 语句进行解析、分析、优化功能的工具。执行计划的作用有:1、展示表的读取顺序;2、数据读取操作的类型;3、展示哪些索引是可以使用的;4、展示哪些索引是实际上使用的;5、展示表之间的引用关系;6、展示每张表被查询的行数。

在数据库查询的时候,我们通常会使用 sql 语句去查询自己所需要的数据。但是,关于 sql 在数据库中是如何执行的,它有没有使用索引,具体使用了哪些索引,查找了哪些字段和表,他们的顺序是怎样的,分别用时多少等等信息我们不得而知,那么有没有什么方法可以看到这些信息,mysql 给我们提供了一套工具——执行计划。

一、什么是执行计划

执行计划是数据库提供给我们的一套对 sql 语句进行解析、分析、优化功能的工具,他具有以下的作用:

展示表的读取顺序;

数据读取操作的类型;

哪些索引是可以使用的;

哪些索引是实际上使用的;

表之间的引用关系;

每张表被查询的行数。

注意:执行计划只是数据库针对 sql 给出最佳的优化参考方案,并不一定是最优解,即不要过度相信执行计划

二、如何使用执行计划

使用执行计划很简单,在要执行的 sql 前面加上关键词 explain 即可。

三、执行计划信息

从图中可以看出,sql 执行计划主要包含以下信息:id、select_type、table、partitions、type、possible_keys、key、key_len、ref、rows、filtered、Extra。

3.1、id

select 查询序列号,id 相同,执行顺序由上至下;id 不同,id 值越大优先级越高,越先被执行;

3.2、select_type

select_type:表示 select 语句的类型,可以有以下取值;

SIMPLE:表示简单查询,其中不包含连接查询和?查询;

PRIMARY:表示主查询,或者是最外?的查询语句;

UNION:表示连接查询的第 2 个或后?的查询语句;

DEPENDENT UNION:UNION 中的第?个或后?的 SELECT 语句,取决于外?的查询;

UNION RESULT:连接查询的结果;

SUBQUERY:?查询中的第 1 个 SELECT 语句;

DEPENDENT SUBQUERY:?查询中的第 1 个 SELECT 语句,取决于外?的查询;

DERIVED:SELECT(FROM ?句的?查询)。

3.3、table

table:表示查询的表名,可以有以下几种情况:

显示表名,如果起了别名,则显示别名;

derivenN:表示查询的条件是一个子查询;

union1,2:表示表 1 和表 2 使用 union。

3.4、partitions

partitions:匹配的分区。

3.5、type

type:这?列表示表关联类型或访问类型,即数据库决定如何查找表中的?,查找数据?记录的?概范围。依次从最优到最差分别为:system const eq_ref ref range index all

system:表中只有一行记录,相当于系统表,这是 const 类型的特列,平时不会出现,可以忽略不计;

const:通过索引一次命中,匹配一行数据,所以很快,常?于 PRIMARY KEY 或者 UNIQUE 索引的查询,可理解为 const 是最优化的;

eq_ref:唯一性索引扫描,对于每个索引键,表中只有一条记录与之匹配,常用语主键或唯一索引扫描,这可能是在 const 之外最好的联接类型了;

ref:非唯一性索引扫描,返回匹配某个单独值的所有行,用于 =、或 操作符带索引的列;

range:只检索给定范围的行,使用一个索引来选择行,一般用于 between、、、in 等查询,这种范围查询要比 index 要好,因为他只需要扫描索引的一个点,结束于另外一个点;

index:需要遍历索引树;

all:即全表扫描,意味着数据库需要从头到尾去查找所需要的?。通常情况下这需要增加索引来进?优化了。

注意:在进行 sql 优化的时候至少要优化到 range,推荐优化到 ref,最好是 const。

3.6、possible_keys

possible_keys:这?列显示查询可能使?哪些索引来查找。explain 时可能出现 possible_keys 有列,? key 显示 NULL 的情况,这种情况是因为表中数据不多,数据库认为索引对此查询帮助不?,选择了全表查询。
如果该列是 NULL,则没有相关的索引。在这种情况下,可以通过检查 where ?句看是否可以创造?个适当的索引来提?查询性能,然后? explain 查看效果。

3.7、key

key:显示数据库实际决定使?的键 (索引)。如果没有选择索引,key 的值是 NULL。可以强制使?索引或者忽略索引。

3.8、key_len

key_len:这?列显示了数据库在索引?使?的字节数,通过这个值可以算出具体使?了索引中的哪些列,数值计算如下:

字符串类型
char(n):n 字节长度
varchar(n):2 字节存储字符串长度,如果是 utf-8,则长度 3n + 2

数值类型
tinyint:1 字节
smallint:2 字节
int:4 字节
bigint:8 字节

时间类型
date:3 字节
timestamp:4 字节
datetime:8 字节

如果字段允许为 NULL,需要 1 字节记录是否为 NULL

注意:索引最??度是 768 字节,当字符串过?时,数据库会做?个类似左前缀索引的处理,将前半部分的字符提取出来做索引。

3.9、ref

ref:这?列显示了在 key 列记录的索引中表查找值所?到的列或常量,常见的有:const(常量),func,null,字段名(例:film.id)

3.10、rows

rows:这?列是数据库估计要读取并扫描的?数,注意这个不是结果集?的?数,因此这个值越小越好。

3.11、filtered

filtered:返回结果的行数占读取行数的百分比,值越大越好。

3.12、Extra

extra:这一列显示的是额外的信息,即不包含在其他列的信息,具体值如下:

distinct:数据库发现第 1 个匹配?后, 停?为当前的?组合搜索更多的?;

not exists:数据库能够对查询进? LEFT JOIN 优化, 发现 1 个匹配 LEFT JOIN 标准的?后, 不再为前?的的?组合在该表内检查更多的?;

range checked for each record (index map: #):数据库没有发现好的可以使?的索引, 但发现如果来?前?的表的列值已知, 可能部分索引可以使?;

using filesort(重点):数据库会对结果使??个外部索引排序,?不是按索引次序从表?读取?。此时 mysql 会根据联接类型浏览所有符合条件的记录,并保存排序关键字和?指针,然后排序关键字并按顺序检索?信息。这种情况下?般也是要考虑使?索引来优化的;

using index(重点):从只使?索引树中的信息?不需要进?步搜索读取实际的?来检索表中的列信息,即表示 select 使用了覆盖索引而不必去回表查询;

using temporary(重点):数据库需要创建?张临时表来处理查询,这种情况常见于 order by 和 group by。出现这种情况?般是要进?优化的,?先是想到?索引来优化;

using where:数据库将在存储引擎检索?后再进?过滤。就是先读取整?数据,再按 where 条件进?检查,符合就留下,不符合就丢弃;

using index condition:与 Using where 类似,查询的列不完全被索引覆盖,where 条件中是?个前导列的范围;

using sort_union(…), Using union(…), Using intersect(…):这些函数说明如何为 index_merge 联接类型合并索引扫描;

using index for group-by:类似于访问表的 Using index ?式,Using index for group-by 表示数据库发现了?个索引, 可以?来查 询 group by 或 distinct 查询的所有列, ?不要额外搜索硬盘访问实际的表;

null:查询的列未被索引覆盖,并且 where 筛选条件是索引的前导列,意味着?到了索引,但是部分字段未被索引覆盖,必须通过“回表”来实现,不是纯粹地?到了索引,也不是完全没?到索引,即使用了索引但需要回表操作,应该避免回表操作。

感谢各位的阅读,以上就是“mysql 执行计划指的是什么”的内容了,经过本文的学习后,相信大家对 mysql 执行计划指的是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-13发表,共计3565字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 欧美性高清另类videosex | 国产视频大全 | 天堂资源中文最新版在线一区 | 亚洲 欧美 变态 另类 综合 | 亚洲国产激情在线一区 | 欧美激情性做爰免费视频 | 欧美日韩成人午夜免费 | 亚洲国产精品第一区二区 | 青青免费视频视频在线 | 99精品视频在线观看免费专区 | 国产99精品视频 | 九九免费精品视频 | 欧美日韩一区二区三区毛片 | 欧美精品国产一区二区三区 | 亚洲欧洲日产国码 最新 | 国产1区| 久久久久无码精品国产 | 久久久精品成人免费看 | 亚洲色一区二区三区四区 | 女人被弄到高潮的免费视频 | 免费观看全黄做爰的视频 | 四虎影院网站 | 成人三级精品视频在线观看 | 久热这里只有精品在线 | 人妻少妇中文字幕乱码 | 精产国品一二三产品蜜桃 | 久久精品国产屋 | 午夜激爽毛片在线看 | 久久精品亚洲精品国产欧美 | 凹凸国产熟女精品视频app | 视频1区 | 欧美黄色大片网站 | 久久精品中文闷骚内射 | 日本无码人妻波多野结衣 | 亚洲日韩久久综合中文字幕 | 国产精品国产三级国产av主播 | 丰满人妻熟妇乱又伦精品视 | 不卡国产 | 日本一级特黄毛片免费视频 | 亚洲自偷自偷偷色无码中文 | 97色伦图片97综合影院 |