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个效果可以,否则必须要用其他替代);
相关文章
- 10-14电Call记录统计查询sql
- 10-14SQL 常用方法
- 10-14sql查删更
- 10-14Scout YYF I POJ - 3744【矩阵乘法优化求概率】
- 10-14x264码率失真优化曲线的实现
- 10-14织梦(dedecms)优化之更改RSS、sitemap路径至根目录
- 10-14习题2-3 求平方与倒数序列的部分和 (15分)
- 10-14Feathers UI 性能优化
- 10-14hive两大表关联优化试验
- 10-14phpstduy下sql libs下载,安装教程。