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

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'     --

你可能感兴趣的:(where)