SQL执行计划分析

解释

ID列

id标识sql语句中表的执行顺序,id越大越先执行;如果id相同,按照从上到下的顺序执行;如果id为null,表示当列是一个结果集

SELECT_TYPE

这一列显示了 对应行是简单还是复杂SELECT.取值如下:SIMPLE值意味着查询不包括子查询和UNION。查询有任何复杂的子部分,则最外层标记为PRIMARY.取值如下:

TABLE

显示的是查询的表名,如果该表使用了别名,那么这里就显示别名;如果不涉及对数据库表的操作,显示为null;如果显示为尖括号括起来的形式,<derivedN>就表示着是个临时表,后面的N代表执行计划中的id,表示结果来自于id对应的查询产生;<union M N> 和<derived N> 类似,表示结果来自于union 查询的id为M 和N 的结果集。

 

PARTITIONS

对于分区表,显示查询的分区ID,对于非分区表,显示为NULL

 

TYPE

除了all之外其他的type都可以使用到索引;除了index_merge 之外其他的type 都只能使用一个索引。

systm

表中只有一行数据或者是空表,并且表的引擎类型是myisam或memory;如果表的引擎是innodb,这种情况下type值为all

 

EXTRA

Tpe 和 extra 的实例文章  https://blog.csdn.net/taoy86/article/details/109036789

POSSIBLE_KEYS

指出MySQL能使用哪些索引来优化查询,查询所涉及的列上的索引都会被列出,但不一定会被使用

 

KEY

查询优化器优化查询实际所使用的索引,如果没有可用的索引,则显示为NULL,如查询使用了覆盖索引,则该索引仅出现在Key列中

 

KEY_LEN

该列表示每张表执行时使用到的索引的长度,长度越小越好。

 

REF

如果是使用的常数等值查询,这里会显示const,如果是连接查询,被驱动表的执行计划这里会显示驱动表的关联字段,如果是条件使用了表达式或者函数,或者条件列发生了内部隐式转换,这里可能显示为func

 

ROWS

表示执行计划中估计扫描的行数,是个估计值。

 

Filtered

表示返回结果的行数占需读取行数的百分比,Filter列的值越大越好
 

执行计划的限制

无法展示存储过程,触发器,UDF(自定义函数)对查询的影响

无法使用EXPLAIN对存储过程进行分析

早期版本的MySQL只支持对SELECT语句进行分析,如果想要分析UPDATE,INSERT语句需要将它们通过某种手段转换成SELECT语句。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
优化是选择最有效的执行计划来执行SQL语句的过程,这是在处理任何数据的语句(SELECT,INSERT,UPDATE或DELETE)中的一个重要步骤。通过优化器(Optimizer)组件,Oracle可以根据表和索引的访问顺序以及其他因素来选择最佳的执行计划,从而提高语句的执行效率。 在进行优化时,可以使用不同的方法和工具来分析SQL执行计划。一个常用的方法是使用"explain plan"命令,它可以为指定的SQL语句生成执行计划。例如,可以使用"explain plan for select empno, ename from big_emp"来生成一个针对"big_emp"表的执行计划。 此外,还可以使用其他工具如SQL Trace来跟踪SQL语句的执行过程,并生成相应的执行计划和性能统计信息。通过分析执行计划和性能统计信息,可以确定哪些部分的性能较差,从而进行相应的优化。 总的来说,通过对SQL执行计划分析,可以了解SQL语句的执行过程和性能瓶颈,从而进行优化以提高查询效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Oracle sql执行计划解析](https://blog.csdn.net/xybelieve1990/article/details/50562963)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [sqlserver做链接服务器连接Oracle完整版教程](https://download.csdn.net/download/pxfpxf/88244026)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值