sql语句or与union all的执行效率比较
看到一篇文章是讲sql语句or与union all的执行效率比较的,以前没怎么注意这个问题,感觉文章写的不错,转来一看。
文章原链接:http://www.cunyoulu.com/zhuanti/qtstudy/20081124orunion.htm
sql语句or与union all的执行效率比较
当SQL语句有多个or语句时,可以考虑使用union或者union all代替来提高速度。使用or的SQL语句往往无法进行优化,导致速度变慢。但这不是固定的,有时候使用or速度会更快些。具体情况还要经过测试为准。如果加索引的话,也可能实现速度优化。
实验表格如下,实际数据有2,000,000条,从里面返回大约最多1000行左右的数据。
X | Y | Inline | CDP | T |
12002400 | 5801000 | 300 | 300 | 3400 |
12002408 | 5801005 | 300 | 301 | 3402 |
12002416 | 5801010 | 300 | 302 | 3404 |
12002424 | 5801015 | 300 | 303 | 3406 |
... | ... | ... | ... | ... |
or语句(部分节选)
SELECT * FROM tablename where (cdp= 300 and inline=301) or (cdp= 301 and inline=301) or (cdp= 302 and inline=301) or (cdp= 303 and inline=301) or (cdp= 304 and inline=301) or (cdp= 305 and inline=301) or (cdp= 306 and inline=301) or (cdp= 307 and inline=301)
union all语句(部分节选)
SELECT * FROM tablename where (inline= 300 and cdp=300) union all SELECT * FROM tablename where (inline= 301 and cdp=300) union all SELECT * FROM tablename where (inline= 302 and cdp=300) union all SELECT * FROM tablename where (inline= 303 and cdp=300)
返回不规则的900条数据,前者用了60多秒,后者用了8秒左右。
sql语句or与union all的执行效率比较相关推荐
- 一条SQL语句在MySQL中是如何执行的
来源:http://t.cn/E6U9Z9T 概览 本篇文章会分析下一个sql语句在mysql中的执行流程,包括sql的查询在mysql内部会怎么流转,sql语句的更新是怎么完成的. 一.mysql架 ...
- django mysql sql语句_Django笔记:连接数据库并执行SQL语句
Django中安装好数据库和对应的数据库驱动之后,就可以直接执行SQL语句进行数据库和表的创建,以及数据的增删改查等操作,在Python3中,可以使用的数据库和驱动有多种,我这里使用的是MySQL数据 ...
- SQL语句在数据库中是如何执行的
第一步:应用程序把查询SQL语句发给服务器端执行 我们在数据层执行SQL语句时,应用程序会连接到相应的数据库服务器,把SQL语句发送给服务器处理. 第二步:服务器解析请求的SQL语句 SQL计划缓存, ...
- linux之SQL语句简明教程---UNION ALL
UNION ALL 这个指令的目的也是要将两个 SQL 语句的结果合并在一起. UNION ALL 和UNION 不同之处在于 UNION ALL 会将每一笔符合条件的资料都列出来,不管资料值有无反复 ...
- oracle 执行带参数的sql语句_当用EXECUTE IMMEDIATE执行SQL语句中的参数个数也是动态的?用什么方法实现?...
当用EXECUTE IMMEDIATE执行SQL语句中的参数个数也是动态的?用什么方法实现? 描述详细一点就是:在要执行的SQL语句中所用到(: parameter)这种参数的个数,因具体条件不同,而 ...
- SQL允许你用EXECUTE执行一个变量中定义的SQL语句,并且允许你在被执行的SQL语句中,再次嵌套入一个变量定义的语句,并且再次在其中用EXECUTE执行它...
declare @sqlstr varchar(3000) set @sqlstr='declare @subsqlstr varchar(1000);' set @sqlstr=@sqlstr+'s ...
- SQL语句中:UNION与UNION ALL的区别
UNION用的比较多union all是直接连接,取到得是所有值,记录可能有重复 union 是取唯一值,记录没有重复 1.UNION 的语法如下:[SQL 语句 1]UNION[SQL 语句 2]2 ...
- oracle同时运行多行sql语句,.NET程序连接Oracle一次执行多行SQL的注意事项
以前写的基于MSSQL数据库的.NET程序,不用担心SQL语句中的;或者换行符.但是因为要基于Infor LN的Oracle数据库进行开发,就碰到了;分号和换行的报错,同时一次执行UPDATE的多条更 ...
- SQL语句中的AND和OR执行顺序问题
问题的关键就在于AND和OR的执行顺序问题. 查阅资料,关系型运算符优先级高到低为:NOT>AND>OR 如果where 后面有OR条件的话,则OR自动会把左右的查询条件分开 hive 中 ...
最新文章
- maven 错误处理
- MyBatis3 xml映射文件配置
- 点击事件为什么会失效_1917年的法蒂玛事件,为什么会被称为最为惊悚的UFO目击事件?...
- 牛顿法、梯度下降法、高斯牛顿法、Levenberg-Marquardt算法
- 聊聊AspectCore动态代理中的拦截器(一)
- 解决Oracle 11gR2 空闲连接过多,导致连接数满的问题
- 关于OAuth2.0的文章收集
- 【CCCC】L3-009 长城 (30分),计算几何+凸包,极角排序
- iOS开发技巧:使用Objective-C创建UUID
- 趣说cpu指令集之别
- linux卸载jdk,安装jdk
- 计算机四级网络工程师——计算机网络部分题目笔记
- APP原生开发与APP混合开发的区别
- EINT DINT ERTM DRTM EALLOW EDIS ESTOP0的理解
- 记录一次自己搭建服务器的历程(机架式服务器,Linux系统)
- 你有被代理过吗?讲讲开源框架都在用的代理模式
- 西南交大计算机应用基础 第2次作业 主观题目,西南交大网络教育2011-2012学年计算机应用基础第四次作业(主观题)...
- 2018秋季学习总结
- 使用BasicExcel操作Excel
- CodeForces 757 E.Bash Plays with Functions(积性函数+dp)
热门文章
- OpenGL延迟着色之二
- C++fibonacci斐波那契数列,自下而上(附完整源码)
- 有序数组中查找数字的范围
- C++的const比C语言#define更好的原因?
- 经典C语言程序100例之六
- C++不同文件中相同变量的共享
- centos7 tomcat_CentOS7下Tomcat应用容器抛出Too many open files问题
- fillstyle属性_html设置或返回用于填充绘画的颜色渐变或模式的属性fillStyle
- 4、Python运算符、比较运算符、赋值运算符、位运算符、逻辑运算符、成员运算符、身份运算符、运算符优先级(学些笔记)
- Akka编写一个RPC框架,模拟多个Worker连接Master的情况的案例