zoukankan      html  css  js  c++  java
  • SQL_where条件的优化

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

    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万行的临时表,再得到同样的结 果。由此可见,选择条件的选取极大的影响着查询语句的计算量,所以,要提高查询的响应速度,可以将较严格的条件写在前面,较弱的条件放在后面。

  • 相关阅读:
    音频(一)_音频认知(1.音频释义)
    音频_写在前面的话
    SignInWithAppleId(Apple登录接入)_unity篇
    编程工具~用了都说好的快捷键大杂烩
    Unity的PlayerPrefs存储路径
    unity如何判断应用的运行平台
    Unity资源加载机制www的坑
    VSCode快捷键
    MD5加密字符串并转化为base64(C#和PHP代码相同实现)
    转载:关于 Google Chrome 中的全屏模式和 APP 模式
  • 原文地址:https://www.cnblogs.com/daxiongblog/p/4350583.html
Copyright © 2011-2022 走看看