1.合理使用索引可以加快表的检索速度,如果你还在使用 * 请自动给自己一巴掌

  * 号不仅占用资源,还无法使用索引来加快检索速度
2.一个表的索引最多不要超过5个 否则会造成维护索引的时间大于使用索引省下的时间
3.like 的使用  %处于开头的时候会造成全表扫描,故 我们希望客户能够提供更多的左边信息以加快检索速度
4.null值是一个不确定的值,在oracle 中 null是一个比所有值都大的值,但其不能用来进行比较运算,
否则会造成全表扫描,除非在比较的同时还有其它查询条件,故比较NULL不建议单独使用
5.复合索引,第一列的选择很重要,会影响联合索引的效率
6.在索引中禁止使用not  因为使用not后 数据库在执行到这里的时候会放弃使用索引,从而进行全表扫描
7.避免在索引列上使用计算,如果索引列是函数的一部分,那么执行的时候将不会执行索引,而进行全表扫描
  低效:
  SELECT … FROM DEPT WHERE SAL * 12 > 25000;  
  高效:
  SELECT … FROM DEPT WHERE SAL > 25000/12;
8.用union 代替or  前提是 对索引列使用  如果没有索引列还是使用or吧
  如果你坚持要用 OR,那就需要返回记录最少的索引列写在最前面。
9.避免在索引列上使用 IS NULL 或者 IS NOT NULL
  在单列索引中 如果有的字段该列为空 就会造成 索引中没有这条记录
复合索引的时候 如果列全为空 则索引中没有这条记录
10.如果索引是建立在多个列上,只有在它的第一个列(leading column)被 where
   子句引用时,优化器才会选择使用该索引。这也是一条简单而重要的规则,当仅
   引用索引的第二个列时,优化器使用了全表扫描而忽略了索引