SQL查询优化,注意where条件的顺序

原创 2007年10月12日 16:30:00

1.测试表

    employee

    雇员id     部门id      薪金

    emp_id    dept_id    salary

      01            01           1050

      02             01           2000

 

   ok,我们要查找部门01下,薪金高于1000的雇员

2.原则及两个SQL的对比

原则,多数数据库都是从 左到右的顺序处理条件,把能过滤更多数据的条件放在前面,过滤少的条件放后面

SQL1: select * from employee

            where salary >1000     --条件1,过滤的数据较少

                 and   dept_id='01'    --条件2,过滤的数据比条件1多

上面的SQL就不符合我们的原则了,应该把过滤数据更多的条件放在前面,因此改为下面这样更好

             select * from employee

              where   dept_id='01'     --过滤更多数据的条件放在前面

                  and   salary > 1000

 

要提高SQL查询效率where语句条件的先后次序应如何写使你的SQL 语句完全优化

我们要做到不但会写SQL,还要做到写出性能优良的SQL语句。 (1)选择最有效率的表名顺序(只在基于规则的优化器中有效): Oracle的解析器按照从右到左的顺序处理FROM子句中的...
  • ht_gaogao
  • ht_gaogao
  • 2014年03月14日 17:02
  • 1967

Sql优化系列之(1)__where子句条件优化

1.为什么要进行SQL优化   系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现其功能就可,...
  • orclight
  • orclight
  • 2013年03月04日 17:55
  • 8260

sql优化(where条件中的''in''在逻辑上相当于............)

自己着手写博客,最初能做的只是为自己zh
  • zlggyn
  • zlggyn
  • 2014年10月11日 17:20
  • 1943

sql语句的where条件顺序和索引的顺序

建表CREATE TABLE `Problem_submit` ( `id` int(11) NOT NULL AUTO_INCREMENT, `status` int(11) NOT NUL...
  • qq_17612199
  • qq_17612199
  • 2016年09月19日 21:29
  • 1148

MySQL优化--where条件字段的顺序对效率的影响 (02)

学生表 Student id(编号) name(名字) age(年龄) height(身高) 1 Tommy 26 170 2 Jerry 23 180 3...
  • Lingfeng928
  • Lingfeng928
  • 2016年09月08日 15:53
  • 2191

oracle中Where子句的条件顺序对性能的影响

【具体出处不可考,请作者见谅】 经常有人问到oracle中的Where子句的条件书写顺序是否对SQL性能有影响,我的直觉是没有影响,因为如果这个顺序有影响,Oracle应该早就能够做到自动优化,但一直...
  • BoWa21C
  • BoWa21C
  • 2013年12月25日 23:22
  • 1266

SQL的WHERE子句中包含多个AND和OR

转:http://my.oschina.net/xinxingegeya/blog/220122   摘要 SQL的WHERE子句中包含多个AND和OR SQL的WHERE子句中包...
  • pzasdq
  • pzasdq
  • 2016年06月21日 10:01
  • 4798

[SqlServer] 性能优化实战-join与where条件执行顺序

昨天经历了一场非常痛苦的性能调优过程,但是收获也是刻骨铭心的,感觉对sql引擎的原理有了进一步认识。 问题起源于测试人员测一个多条件检索的性能时,发现按某个条件查询会特别慢。对应的sql语句简化为: ...
  • szx1999
  • szx1999
  • 2015年11月25日 14:47
  • 4587

Oracle数据库Where条件执行顺序 及Where子句的条件顺序对性能的影响

1、Oracle数据库Where条件执行顺序: 由于SQL优化起来比较复杂,并且还会受环境限制,在开发过程中,写SQL必须必须要遵循以下几点的原则:   1.ORACLE采用自下而上的顺序...
  • qiruiduni
  • qiruiduni
  • 2015年02月05日 06:20
  • 4290

left join加上where条件的困惑 --SQL优化

这里写链接内容left join加上where条件的困惑 摘自:http://hi.baidu.com/dyzhong/blog/item/b42e56a93c0bfcf71e17a2c0.html ...
  • peterxiaoq
  • peterxiaoq
  • 2016年04月15日 17:00
  • 2631
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL查询优化,注意where条件的顺序
举报原因:
原因补充:

(最多只允许输入30个字)