我们在
Oracle中使用like查询时,如果是后like(like '111%'),是可以使用索引的,但前like(like '%111')时。不会正常去走字段的索引。
建议使用
reverse索引的形式进行优化,首先优化索引: create index 索引名 on 表名(
reverse(字段名)
);
然后使用时 select A.XXX FROM 表名 A WHERE
reverse(字段名) like
reverse('%123');
调整后可以通过执行计划可以发现,在使用
reverse索引后查询效率大幅提升。
使用reverse函数索引将索引数据反转,SQL中的where条件中将值反转,这样就将前%改为后%。