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

 

MaxCompute SQL查询优化解析

-
  • 1970年01月01日 08:00

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

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

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

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

SQL 的where 执行顺序

1  mysql  从左到右.      一个原则,排除越多的条件放到第一个 例子:抄的。 SELECT … WHERE p.languages_id = 1 AND m.language...
  • liuming690452074
  • liuming690452074
  • 2016-12-15 23:44:34
  • 3276

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:36
  • 1838

SQL 语句中 多表与 where 多条件 顺序与执行效率

      FROM多表顺序与效率    ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表 driving table)将被最先处理. 在FROM...
  • bzqgo
  • bzqgo
  • 2016-03-29 11:06:20
  • 872

Oracle中的where部分的各个条件的执行顺序(右->左)

原网址:http://blog.sina.com.cn/s/blog_7e4ac8b50100vcwv.html SQL 条件字段(Where 部分)的分析和执行顺序[ 右——>左 ] 实验一:证明...
  • u013600225
  • u013600225
  • 2016-04-16 10:43:40
  • 11333

sql left join inner right join 以及on 和where的条件顺序

left join SELECT * FROM tab1 LEFT JOIN tab2 ON(tab1.size =tab2.`size`) SELECT * FROM tab1 LE...
  • ruanjian11110
  • ruanjian11110
  • 2016-09-20 15:29:44
  • 1550

要提高SQL查询效率where语句条件的先后次序应如何写

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

SQL中WHERE子句中的连接顺序

ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。...
  • shiyong1949
  • shiyong1949
  • 2015-07-13 14:48:08
  • 1017
收藏助手
不良信息举报
您举报文章:SQL查询优化,注意where条件的顺序
举报原因:
原因补充:

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