百万数据Oracle SQL优化

Oracle Order by 语句的优化

1 大家都知道sql中使用 Order by 会导致全表扫描,但是有的功能需求中少不了要使用。数据量少还好说,数据量一大就会变的特别的慢
使用Order by的执行计划
百万数据Oracle SQL优化
未使用Order by的执行计划
百万数据Oracle SQL优化
可以看出未使用Order by的sql 是使用了Order by 的近10倍

如何提高Order by使用的效率(如图)

百万数据Oracle SQL优化
在使用的Order by 的字段中添加索引注意Order by 字段的索引必须配合where使用才有效

Oracle like ‘%关键字%’ 优化 模糊匹配

这个就不一 一贴图了,直接开始
like ‘%关键字’ 左边使用通配符会导致全表扫描,效率会非常的慢,而且索引也会没有效果,
推荐使用 instr()函数,使用方法如下:
instr(字段名,查询条件)>0 大于0 表示匹配到该参数,
并且,instr() 函数是可以走索引的哦,可以大大的优化查询的速度。

*附: 不是说索引越多越好,虽然说索引可以提高查询的速度,但是会占用物理空间,删除和修改时索引也会动态的维护,效率会较低 *