当前位置:   article > 正文

基本使用explain分析SQL_sqlserver explain

sqlserver explain

目录

一、慢查询explain分析的基本思路

二、explain返回字段详解

三、索引优化的原则以及失效情况举例

建立索引

优化索引

索引失效

四、通过explain优化sql的基本思路

五、知识补充

六、参考相关博客


干货分享,感谢您的阅读!

一、慢查询explain分析的基本思路

explain命令是分析慢查询的一个常用方式,可以用来分析select 语句的运行效果,通过explain命令可以得到下面这些信息: 表的读取顺序,数据读取操作的操作类型 ,哪些索引可以使用,哪些索引被实际使用,表之间的引用,每张表有多少行被优化器查询等信息。

一般,使用explain分析问题主要从以下三个方面分析:

  • 当前查询是否走了索引?

  • 走的索引是不是期望的?

  • 索引还有没有改进的空间,sql还有没有优化的余地?

这三点通过explain返回的各种字段来做分析,一般优化后需要反复查看explain来作出最后的选择。

二、explain返回字段详解

备注:相关sql查看基本的操作分析可见参考文档,或后期我会自己补充一份举例的用例分析(待更新)

三、索引优化的原则以及失效情况举例

备注:相关sql查看基本的操作分析可见参考文档,或后期我会自己补充一份举例的用例分析(待更新)

建立索引

优化索引

索引失效

四、通过explain优化sql的基本思路

五、知识补充

一条查询语句在经过MySQL查询优化器的各种基于成本和规则的优化会后生成一个所谓的执行计划,这个执行计划展示了接下来具体执行查询的方式,比如多表连接的顺序是什么,对于每个表采用什么访问方法来具体执行查询等等。

查询成本

一个查询可以有不同的执行方案,可以选择某个索引进行查询,也可以选择全表扫描,查询优化器会选择其中成本最低的方案去执行查询。

IO成本

InnoDB存储引擎都是将数据和索引都存储到磁盘上的,当我们想查询表中的记录时,需要先把数据或者索引加载到内存中然后再操作。这个从磁盘到内存这个加载的过程损耗的时间称之为I/O成本。

cpu成本

读取以及检测记录是否满足对应的搜索条件、对结果集进行排序等这些操作损耗的时间称之为CPU成本。

计算规则

InnoDB存储引擎规定读取一个页面花费的成本默认是1.0,读取以及检测一条记录是否符合搜索条件的成本默认是0.2。

六、参考相关博客

1.SQL中explaind的使用介绍_sql server explain_天山童姥yy的博客-CSDN博客

2.MySQL中explain执行计划中额外信息字段(Extra)详解_start temporary_haughty_xiao的博客-CSDN博客

3.索引失效的几种情况_使用函数索引失效_PreciousLife的博客-CSDN博客

4.https://www.cnblogs.com/myseries/p/11265849.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/796675
推荐阅读
相关标签
  

闽ICP备14008679号