滑动菜单栏开源项目SlidingMenu的使用
2024-10-13 04:05:28
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 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相关信息)
最新文章
- git 修改最后一次提交的用户名 或者 commit的内容
- div+css兼容 ie6_ie7_ie8_ie9_ie10和FireFox_Chrome等浏览器方法
- 【原创】express3.4.8源码解析之中间件
- Windows BAT文件使用技巧[转载]
- Python 学习笔记(五)杂项
- Operfire/XMPP
- tpshop使用自带极光推送
- C#中Abstract和Virtual[转载]
- OJ题:字符串最后一个单词的长度
- 安利一款强大的学习软件XMind(顺便放上这几天制作的JavaSE的思维导图day1-day4)
- SPI通信的基础知识
- laravel表单验证
- golang语言中os/user包的学习与使用
- PI monitor error process-RESOURCE_NOT_FOUND-转
- github开源库(二)
- 腾讯在线文档发布:实现QQ、微信多平台多人协作编辑
- 网易云社区有奖问答活动第二期——技术领导力、深入分布式、PHP圣经、Linux运维、Unity……三月热点图书等你拿!
- 常见踩坑案例(二)-Request method 'POST' not supported
- java.lang.NoClassDefFoundError: com.baidu.mapapi.BMapManager
- Python 分支、循环、条件、枚举
热门文章
- PHP WAMP关闭notice等提示
- Android 父类super.onDestroy();的有关问题
- ssh 公钥
- http://www.cnblogs.com/huangcong/archive/2010/06/14/1757957.html
- APAC Practice
- hdu1116
- python自定义函数在Python解释器中调用
- lintcode :Permutation Index 排列序号
- class卸载、热替换和Tomcat的热部署的分析
- BZOJ 3140 消毒(最小顶点覆盖)