利用reverse索引优化like语句的法子详解

在有一对动静下,开发同学时不时使用like去落到实处部分政工须求,当使用like时,大家都清楚使用like
前%(like
‘%111’)这种状态是无能为力使用索引的,那么怎么着优化此类的SQL呢,下边是1个案例。

原SQL如下:

图片 1

pcc_cust_infonew 表索引如下

图片 2

执行设计如下:

图片 3

那边能够看看SQL执行3.96秒,执行安插中也足以窥见PCC_CUST_INFONEW表走TABLE
ACCESS
FULL扫描,再次回到约380k的数码,然后再与PCC_CUST_CONTRACTCOMPANY表主键PK_PCC_CUST_CONTRACTCOMPANY走INDEX
UNIQUE SCAN,那里慢首要是举行安插中为3的这一步。

大家也都知晓在Oracle中,当使用like时,若是是后%(like
‘138%’)是能够选择索引的,假诺是前%(like
‘%138’)是无能为力平常使用索引。那么怎么着让前%也能够行使到目录呢,答案是能够动用reverse索引的样式展开优化。

优化如下: 
修改索引

图片 4

将SQL调整为

图片 5

按上述调整后,SQL执行作用进步到阿秒级。

图片 6

调动后的实施安顿如下:

图片 7

那使用reverse函数索引后,到底是怎么着达成能够运用索引了吗,当您看到进行陈设上边包车型大巴谓词消息可能你就理解答案了,

图片 8

实则正是应用reverse函数索引将引得数据反转,SQL中的where条件中校值反转,那样就将前%改为后%。

相关文章