zoukankan      html  css  js  c++  java
  • 部分SQL优化

    1.表名顺序:不影响业务逻辑情况下,一般情况下大表在左,小表在右;三表以上出现交叉表,则交叉表在前。
    2.WHERE子句顺序:执行顺序ORACLE由右到左,效率基本相同;
    3.JOIN表的右表条件尽量写在ON中,不要在WHERE之后(注:使用左连接两者是有区别的);
    4.多个大表的JOIN尽量先分页再连接;
    5.避免全表扫描:
      5.1 避免对索引列进行函数或是表达式操作;
      5.2 索引列最好是not null列,使用is not null 永远不会使用索引列,is null有时也不会使用;
      5.3 避免使用<> != 不等于操作符,会限制索引,引起全表查询;
      5.4 '%A%','%A' 不使用索引, 'A%'使用索引;
      5.5 非索引列使用OR查询会导致全表查询;
      5.6 使用not in 不会使用索引,用not exists 或者(外连接+条件)替代;

    6.查询结果中避免使用“*”, 用count(0)替代count(*);
    7.使用表的别名来避免列相同查询错误。
    8.使用>=替代>; a1 = a2*100 替代a1/a2=100;datetime =to_char('20121122','yyyymmdd') 替换  to_char(datetime,'yyyymmdd') = '20121122'
    9.使用union 替换 or; exists(或外连接)替换 in;(注: in 中个数如果是char<100,int<1000个效果可以,否则必须要用其他替代);

  • 相关阅读:
    阅读文献总结笔记11
    阅读文献总结笔记20
    阅读文献总结笔记13
    阅读文献总结笔记19
    阅读文献总结笔记17
    阅读文献总结笔记18
    阅读文献总结笔记15
    java图片以字符串的形式传输
    java与C#对接签名和验签
    SIP代码大全
  • 原文地址:https://www.cnblogs.com/xuxian/p/4001532.html
Copyright © 2011-2022 走看看