explain之三:MYSQL EXPLAIN语句的extended 选项学习体会,分析诊断工具之二
2014-02-24 13:31
691 查看
MySQL 的explain命令有一个extended选项,我想可以很多人都没有注意,因为它对命令的输出结果没有任何改变,只是增加了一个warning。这个 warning中显示了MySQL对SQL的解释,从这个解释中我们可以看到SQL的执行方式,对于分析SQL还是很有用的。也即explain 的extended 扩展能够在原本explain的基础上额外的提供一些查询优化的信息,这些信息可以通过mysql的show warnings命令得到。下面是一个最简单的例子。
首先执行对想要分析的语句进行explain,并带上extended选项
接下来再执行Show Warnings
mysql> show warnings\G;
explain extended 除了能够告诉我们mysql的查询优化能做什么,同时也能告诉我们mysql的查询优化做不了什么。Mysql performance的Extended EXPLAIN这篇文中中作者就利用explain extended +show warnings 找到了mysql查询优化器中不能查询优化的地方。
从 EXPLAIN extended SELECT * FROM sbtest WHERE id>5 AND id>6 AND c="a" AND pad=c语句的输出我们得知mysql的查询优化器不能将id>5 和 id>6 这两个查询条件优化合并成一个 id>6。
例如:
上面是一个子查询看起来和外部的查询没有任何关系,从explain extended的结果我们就可以看看mysql如何优化的:
不过需要注意的一点是从EXPLAIN extended +show warnings得到“优化以后”的查询语句可能还不是最终优化执行的sql,或者说explain extended看到的信息还不足以说明mysql最终对查询语句优化的结果。
相关资源
mysql performance的 explain extended
静室的explain extended选项
mysql 参考手册中的EXPLAIN语法(获取SELECT相关信息)
首先执行对想要分析的语句进行explain,并带上extended选项
mysql> explain extended select count(*) from test1,test2 where test1.id=test2.id and test2.email='duan@qq.com';
接下来再执行Show Warnings
mysql> show warnings\G;
explain extended 除了能够告诉我们mysql的查询优化能做什么,同时也能告诉我们mysql的查询优化做不了什么。Mysql performance的Extended EXPLAIN这篇文中中作者就利用explain extended +show warnings 找到了mysql查询优化器中不能查询优化的地方。
从 EXPLAIN extended SELECT * FROM sbtest WHERE id>5 AND id>6 AND c="a" AND pad=c语句的输出我们得知mysql的查询优化器不能将id>5 和 id>6 这两个查询条件优化合并成一个 id>6。
例如:
mysql> explain extended select * from test1 where id in (select id from test2);
上面是一个子查询看起来和外部的查询没有任何关系,从explain extended的结果我们就可以看看mysql如何优化的:
不过需要注意的一点是从EXPLAIN extended +show warnings得到“优化以后”的查询语句可能还不是最终优化执行的sql,或者说explain extended看到的信息还不足以说明mysql最终对查询语句优化的结果。
相关资源
mysql performance的 explain extended
静室的explain extended选项
mysql 参考手册中的EXPLAIN语法(获取SELECT相关信息)
相关文章推荐
- MYSQL EXPLAIN语句的extended 选项学习体会
- MYSQL EXPLAIN语句的extended 选项学习体会
- mysql分析sql语句基础工具 —— explain
- 分析诊断工具之二:Explain结果解读与实践
- mysql语句分析工具explain
- MYSQL EXPLAIN语句的extended 选项学习体会
- Mysql学习总结(41)——MySql数据库基本语句再体会
- MySQL 使用explain分析sql语句的查询效率(一)
- Mysql学习总结(41)——MySql数据库基本语句再体会
- 【MySql性能优化二】利用explain进行查询和分析sql语句
- mysql 慢日志开启 及explain 分析sql语句
- MySQL的查询语句EXPLAIN分析
- mysql查询语句分析 explain用法
- MYSQL学习笔记 (六)explain分析查询
- MySQL学习系列2--MySQL执行计划分析EXPLAIN
- 【MySQL】语句抓包分析工具MySQL sniffer
- mysql 学习疑问: sql语句关键字选项之间的顺序关系???
- MySQL_explain关键字分析查询语句
- 【MySQL】基于MySQL的SQL优化(一)——从用explain关键字分析SQL语句开始
- mysql优化(三)–explain分析sql语句执行效率