我们前面已经谈到了在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的执行效率高相关推荐

  1. StringBuilder和StringBuffer哪个线程安全?执行效率高?

    StringBuilder是线程不安全的,执行效率高 StringBuffer是线程安全的,加了synchronized同步关键字,执行效率高

  2. Python基础教程:列表推导式对比For循环执行效率

    如果把1-10以内的元素追加到一个新的列表表中,如果使用for循环我们可以这么做: a = [] for i in range(1,11):a.append(i) print(a) 输出结果如下: 如 ...

  3. python教程:列表推导式对比For循环执行效率

    我们在前面的学习中都知道,如果把1-10以内的元素追加到一个新的列表表中,如果使用for循环我们可以这么做: a = [] for i in range(1,11):a.append(i) print ...

  4. x = x+1,x+=1,x++那个的执行效率高

    *************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com ****** ...

  5. sql between 效率高吗_整个SQL语句的执行效率都靠它了...

    作者:韩锋 优化器是数据库最核心的功能,也是最复杂的一部分.它负责将用户提交的SQL语句根据各种判断标准,制定出最优的执行计划,并交由执行器来最终执行.优化器算法的好坏.能力的强弱,直接决定了语句的执 ...

  6. switch最大选项数目_随时随地学习C语言之3—if和switch哪个效率高?

    之前学习C语言的时候,我经常有一个疑问,既然有if-else if-else结构的多分支选择语句,C语言为何还要制定switch这种多分支选择语句呢?直到两年前在分析ARM平台C语言反汇编代码的时候, ...

  7. NL连接一定是小表驱动大表效率高吗

    前言 两表使用nest loop(以下简称NL)方式进行连接,小表驱动大表效率高,这似乎是大家的共识,但事实上这是有条件的,并不总是成立.这主要看大表扫描关联字段索引后返回多少数据量,是否需要回表,如 ...

  8. mysql in union all_MySQL中使用or、in与union all在查询命令下的效率对比_MySQL

    OR.in和union all 查询效率到底哪个快? 网上很多的声音都是说union all 快于 or.in,因为or.in会导致全表扫描,他们给出了很多的实例. 但真的union all真的快于o ...

  9. 【Groovy】Groovy 动态语言特性 ( Groovy 语言与 Java 语言执行效率对比 | 以动态特性编译的 Groovy 类 | 以静态特性编译的 Groovy 类 )

    文章目录 一.以动态特性编译的 Groovy 类 二.Groovy 语言与 Java 语言执行效率对比 三.以静态特性编译的 Groovy 类 一.以动态特性编译的 Groovy 类 Groovy 类 ...

  10. 一个C#和C++执行效率对比的简单实例

    这里用一个算法题进行比较. 原题是见http://acm.hdu.edu.cn/showproblem.php?pid=4090,登载在http://blog.csdn.net/woshi250hua ...

最新文章

  1. CentOS(linux) 下JDK的安装
  2. [RQNOJ313]波浪数
  3. 负数比较大小_小升初总复习第七个基础模块:负数的认识
  4. JS制作支付倒计时页面
  5. CUDA里面GRID, BLOCK 边界检测
  6. 3月15日 无损卡尔曼滤波UKF与多传感器融合
  7. 【转载】CSS常用英文字体介绍
  8. 计算机windows用户名密码怎么查,电脑密码怎么查看? 从零教你查询方式
  9. 使用python实现往手机发短信(基于twilio)
  10. mysql nemesis后缀,YOUR FILES ARE ENCRYPTED
  11. 怎么看台式计算机内存条,内存频率怎么看 教你怎么看内存条频率
  12. Deep Network with Stochastic Depth(阅读笔记)一种随机深度的正则化方法
  13. CrossCompiler And Auto tools
  14. XPS文件转换为PDF不再愁!全新XPS/EPS文档处理神器Aspose.Page来啦!
  15. Android程序运行报错Process xxxx has died原因查找
  16. waterdrop(token方式)连接星环科技云平台tdc(kerberos认证)
  17. LED流水灯多种点灯方式代码0基础讲解
  18. springboot中的下载excel模板
  19. 前辈工作经验分享总结
  20. 怎么给PDF文件添加页码

热门文章

  1. XP系统计算机桌面图标不见,win10桌面计算机图标不见了怎么办
  2. PHP利用SMTP发送邮件,测试ok
  3. vue项目使用i18n插件实现多语言切换功能
  4. 智能指针之atuo_ptr源码剖析
  5. 如何在excel中取消合并单元格后内容自动填充?
  6. EtherCAT工业以太网的主要特点
  7. (大数据应用考察)全国水资源分析可视化
  8. IRQL_NOT_LESS_OR_EQUAL蓝屏分析
  9. html坦克游戏,HTML5+JS实现坦克大战小游戏
  10. SharePoint Designer 2013 连接 Office 365 必需安装2个SP