sql 优化杂谈
来源:互联网 发布:windows whistler.img 编辑:程序博客网 时间:2024/06/06 05:42
1、union:对两个结果集进行并集操作,去重,按照默认规则排序
2、union all:对两个结果集并集操作,不去重,不排序
3、intersect:对两个结果集进行交集操作,去重,按照默认规则排序
4、minus:对两个结果集进行差操作,去重,按照默认规则排序
5、or:满足两个条件的并集,不去重,不排序
经以上的总结得出以下结论:
1、如果or字段是索引字段,那么使用union all代替or操作,可以走索引
2、如果能用union all ,尽量不要用union,相当于想distinct又执行了order by
3、这里所说的默认排序规则是按照select后边的字段顺序排序的,先按照第一个字段排序,如果第一个字段相同,就按照第二个字段排序
从SQL执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别:
SQL试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录,如果转换成功则直接采用多个表的连接方式查询。由此可见用IN的SQL至少多了一个转换的过程。一般的SQL都可以转换成功,但对于含有分组统计等方面的SQL就不能转换了。 推荐在业务密集的SQL当中尽量不采用IN操作符
NOT IN 此操作是强列推荐不使用的,因为它不能应用表的索引。推荐用NOT EXISTS 或(外连接+判断为空)方案代替
0 0
- sql优化技术杂谈
- sql 优化杂谈
- 海盗分金SQL优化杂谈
- 优化杂谈
- 优化杂谈
- 优化杂谈
- 优化杂谈
- SQL杂谈
- #SQL杂谈
- Unity3d场景优化杂谈
- 数据库性能优化杂谈
- 性能优化杂谈
- 性能优化杂谈
- 性能优化杂谈二
- javascript代码优化杂谈
- Android杂谈--ListView优化
- Android内存优化杂谈
- Android内存优化杂谈
- 【转】十大抢手的网站压力测试工具
- Android Bundle类
- golang错误link reading body gob: attempt to decode into a non-pointer
- ubuntu pdf转jpg或txt
- pat,c/c++程序小例子
- sql 优化杂谈
- 第五部分 架构篇 第十三章 MongoDB Replica Sets 架构(成员深入理解)
- qt 系统热键 直接调用 win32 API c++ 代码
- 汇编学习记录01
- VirtualBox 使用原硬盘上的操作系统(Win7)
- Android中软键盘弹出时关于布局的问题
- 关于最大素数
- iOS国际化遇到的问题
- Android开发一:Activity之间跳转的四种launchMode