1、查询使用列名比*好,oracle会把*先转换为当前表的所有列名,使用*就让计算机多执行一步
2、where解析顺序:右——>左
使用and可以把更有可能是false的放在右边
oracle会把sql解析成sql执行计划,不是直接执行的SQL语句,就像java不是直接执行的java文件,而是先编译成class文件
3、当既可以使用where和having的时候,尽量使用where
原因:假设一共一亿条记录,赛选出来的有100条
having是先分组再过滤,分组的时候需要分了一亿条
where是先过滤后分组,分组的时候就只要100条
4、尽量使用多表查询
很多子查询在执行的时候都是转换为多表查询来执行的,这个可以通过sql语句的执行计划可以看出
5、尽量不要使用集合运算
原因:执行次数增加