union并不绝对比or的执行效率高
我们前面已经谈到了在where子句中使用or会引起全表扫描,一般的,我所见过的资料都是推荐这里用union来代替or。事实证明,这种说法对于大部分都是适用的。
1.select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi=''2004-9-16'' or gid>9990000
用时:68秒。扫描计数 1,逻辑读 404008 次,物理读 283 次,预读 392163 次。
1.select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi=''2004-9-16''
2.union
3.select gid,fariqi,neibuyonghu,reader,title from Tgongwen where gid>9990000
用时:9秒。扫描计数 8,逻辑读 67489 次,物理读 216 次,预读 7499 次。
看来,用union在通常情况下比用or的效率要高的多。
但经过试验,笔者发现如果or两边的查询列是一样的话,那么用union则反倒和用or的执行速度差很多,虽然这里union扫描的是索引,而or扫描的是全表。
1.select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi=''2004-9-16'' or fariqi=''2004-2-5''
用时:6423毫秒。扫描计数 2,逻辑读 14726 次,物理读 1 次,预读 7176 次。
1.select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi=''2004-9-16''
2.union
3.select gid,fariqi,neibuyonghu,reader,title from Tgongwen where fariqi=''2004-2-5''
用时:11640毫秒。扫描计数 8,逻辑读 14806 次,物理读 108 次,预读 1144 次。
union并不绝对比or的执行效率高相关推荐
- StringBuilder和StringBuffer哪个线程安全?执行效率高?
StringBuilder是线程不安全的,执行效率高 StringBuffer是线程安全的,加了synchronized同步关键字,执行效率高
- Python基础教程:列表推导式对比For循环执行效率
如果把1-10以内的元素追加到一个新的列表表中,如果使用for循环我们可以这么做: a = [] for i in range(1,11):a.append(i) print(a) 输出结果如下: 如 ...
- python教程:列表推导式对比For循环执行效率
我们在前面的学习中都知道,如果把1-10以内的元素追加到一个新的列表表中,如果使用for循环我们可以这么做: a = [] for i in range(1,11):a.append(i) print ...
- x = x+1,x+=1,x++那个的执行效率高
*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com ****** ...
- sql between 效率高吗_整个SQL语句的执行效率都靠它了...
作者:韩锋 优化器是数据库最核心的功能,也是最复杂的一部分.它负责将用户提交的SQL语句根据各种判断标准,制定出最优的执行计划,并交由执行器来最终执行.优化器算法的好坏.能力的强弱,直接决定了语句的执 ...
- switch最大选项数目_随时随地学习C语言之3—if和switch哪个效率高?
之前学习C语言的时候,我经常有一个疑问,既然有if-else if-else结构的多分支选择语句,C语言为何还要制定switch这种多分支选择语句呢?直到两年前在分析ARM平台C语言反汇编代码的时候, ...
- NL连接一定是小表驱动大表效率高吗
前言 两表使用nest loop(以下简称NL)方式进行连接,小表驱动大表效率高,这似乎是大家的共识,但事实上这是有条件的,并不总是成立.这主要看大表扫描关联字段索引后返回多少数据量,是否需要回表,如 ...
- mysql in union all_MySQL中使用or、in与union all在查询命令下的效率对比_MySQL
OR.in和union all 查询效率到底哪个快? 网上很多的声音都是说union all 快于 or.in,因为or.in会导致全表扫描,他们给出了很多的实例. 但真的union all真的快于o ...
- 【Groovy】Groovy 动态语言特性 ( Groovy 语言与 Java 语言执行效率对比 | 以动态特性编译的 Groovy 类 | 以静态特性编译的 Groovy 类 )
文章目录 一.以动态特性编译的 Groovy 类 二.Groovy 语言与 Java 语言执行效率对比 三.以静态特性编译的 Groovy 类 一.以动态特性编译的 Groovy 类 Groovy 类 ...
- 一个C#和C++执行效率对比的简单实例
这里用一个算法题进行比较. 原题是见http://acm.hdu.edu.cn/showproblem.php?pid=4090,登载在http://blog.csdn.net/woshi250hua ...
最新文章
- CentOS(linux) 下JDK的安装
- [RQNOJ313]波浪数
- 负数比较大小_小升初总复习第七个基础模块:负数的认识
- JS制作支付倒计时页面
- CUDA里面GRID, BLOCK 边界检测
- 3月15日 无损卡尔曼滤波UKF与多传感器融合
- 【转载】CSS常用英文字体介绍
- 计算机windows用户名密码怎么查,电脑密码怎么查看? 从零教你查询方式
- 使用python实现往手机发短信(基于twilio)
- mysql nemesis后缀,YOUR FILES ARE ENCRYPTED
- 怎么看台式计算机内存条,内存频率怎么看 教你怎么看内存条频率
- Deep Network with Stochastic Depth(阅读笔记)一种随机深度的正则化方法
- CrossCompiler And Auto tools
- XPS文件转换为PDF不再愁!全新XPS/EPS文档处理神器Aspose.Page来啦!
- Android程序运行报错Process xxxx has died原因查找
- waterdrop(token方式)连接星环科技云平台tdc(kerberos认证)
- LED流水灯多种点灯方式代码0基础讲解
- springboot中的下载excel模板
- 前辈工作经验分享总结
- 怎么给PDF文件添加页码
热门文章
- XP系统计算机桌面图标不见,win10桌面计算机图标不见了怎么办
- PHP利用SMTP发送邮件,测试ok
- vue项目使用i18n插件实现多语言切换功能
- 智能指针之atuo_ptr源码剖析
- 如何在excel中取消合并单元格后内容自动填充?
- EtherCAT工业以太网的主要特点
- (大数据应用考察)全国水资源分析可视化
- IRQL_NOT_LESS_OR_EQUAL蓝屏分析
- html坦克游戏,HTML5+JS实现坦克大战小游戏
- SharePoint Designer 2013 连接 Office 365 必需安装2个SP