一,原则
1,必须 注意表的顺序,主从表依次从下往上(从右往左)
2,必须 注意查询条件的顺序,主从条件依次从下往上
3,必须 在编写查询语句前,规划主从表(主表的字段,对于从表来说就是常量)
4,必须 使用表时,用别名(提升效率,而不仅仅是避免同名字段)
5,必须 在使用组合索引时,应注意索引字段的顺序与条件字段的顺序(基本是反过来)
6,必须 保证查询条件两边的数据类型是一致的
7,必须 在insert时,写全插入数据所需要的字段名
8,必须 将同一个表的条件紧挨在一起(即能最大程度过滤数据,又方便阅读)
9,必须 将非索引的字段放在exists中,作为exists内查询的关键索引
10,不得 在查询时,使用* (提升效率,因为你不做,就得oracle自己做)
11,不得 在必须得索引列上操作
二,技巧
1,考虑 在使用> < 时,使用>= <=
2,考虑 order by是否是可以去掉
3,考虑 存在空值的字段上,是否需要建索引
4,考虑 在使用distinct的地方,用exists替换
5,考虑 在使用UNION的地方,使用UNION ALL
6,考虑 封装复杂或者庞大的查询为临时表(即利于封装逻辑,又都能有效过滤数据)
7,故意 在索引列使用无效(或多于)的函数、计算等操作,使不需要的索引失效
8,故意 在查询条件中补上缺少的组合索引字段(人为地靠拢组合索引条件,但不能影响查询结果)