码迷,mamicode.com
首页 > 数据库 > 详细

SQL_where条件的优化

时间:2015-03-19 16:04:35      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

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

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语句进行调整,减少计算量和内存需求,提高响应速度。 
  a.对同一表格进行多个选择运算 
  选择条件的排列顺序对性能有较大影响,因为不仅影响索引的选取,而且关系到临时表的大小。现以下面的查询语句为例进行说明: 
  select * from customer 
  where city=’beijing’ and fname=’li’ 
  若表中存在100万条记录,其中city=’beijing’的10万,fname=’li’的为2万,其中city=’beijing’的 为2千,在SQL Server中,查询条件的选取是从左到右使用的,因而,执行第一个条件结果返回一个10万行的临时表,然后再从中进行选择,从而得到 最终结果。如果把选择条件改为where fname=’li’ and city=’beijing’,则先得到一个2万行的临时表,再得到同样的结 果。由此可见,选择条件的选取极大的影响着查询语句的计算量,所以,要提高查询的响应速度,可以将较严格的条件写在前面,较弱的条件放在后面。

SQL_where条件的优化

标签:

原文地址:http://www.cnblogs.com/daxiongblog/p/4350583.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!