利用reverse索引优化like语句的方法

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