MySQL 的explain命令有一个extended选项,我想可以很多人都没有注意,因为它对命令的输出结果没有任何改变,只是增加了一个warning。这个 warning中显示了MySQL对SQL的解释,从这个解释中我们可以看到SQL的执行方式,对于分析SQL还是很有用的。也即explain 的extended 扩展能够在原本explain的基础上额外的提供一些查询优化的信息,这些信息可以通过mysql的show warnings命令得到。下面是一个最简单的例子。

首先执行对想要分析的语句进行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 performanceExtended 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相关信息)

最新文章

  1. git 修改最后一次提交的用户名 或者 commit的内容
  2. div+css兼容 ie6_ie7_ie8_ie9_ie10和FireFox_Chrome等浏览器方法
  3. 【原创】express3.4.8源码解析之中间件
  4. Windows BAT文件使用技巧[转载]
  5. Python 学习笔记(五)杂项
  6. Operfire/XMPP
  7. tpshop使用自带极光推送
  8. C#中Abstract和Virtual[转载]
  9. OJ题:字符串最后一个单词的长度
  10. 安利一款强大的学习软件XMind(顺便放上这几天制作的JavaSE的思维导图day1-day4)
  11. SPI通信的基础知识
  12. laravel表单验证
  13. golang语言中os/user包的学习与使用
  14. PI monitor error process-RESOURCE_NOT_FOUND-转
  15. github开源库(二)
  16. 腾讯在线文档发布:实现QQ、微信多平台多人协作编辑
  17. 网易云社区有奖问答活动第二期——技术领导力、深入分布式、PHP圣经、Linux运维、Unity……三月热点图书等你拿!
  18. 常见踩坑案例(二)-Request method 'POST' not supported
  19. java.lang.NoClassDefFoundError: com.baidu.mapapi.BMapManager
  20. Python 分支、循环、条件、枚举

热门文章

  1. PHP WAMP关闭notice等提示
  2. Android 父类super.onDestroy();的有关问题
  3. ssh 公钥
  4. http://www.cnblogs.com/huangcong/archive/2010/06/14/1757957.html
  5. APAC Practice
  6. hdu1116
  7. python自定义函数在Python解释器中调用
  8. lintcode :Permutation Index 排列序号
  9. class卸载、热替换和Tomcat的热部署的分析
  10. BZOJ 3140 消毒(最小顶点覆盖)