因為like參數使用的非常頻繁,因此如果能夠對like子句使用索引,將很高的提高查詢的效率。
例:
select * from city where name like ‘%S%’;
以上查詢的執行計劃用了全表掃描(TABLE ACCESS FULL),如果能夠修改為:
select * from city where name like ‘S%’;
那麼查詢的執行計劃將會變成(INDEX RANGE SCAN),成功的利用了name字段的索引。
這意味著Oracle SQL優化器會識別出用於索引的like子句,只要該查詢的匹配端是具體值。
因此我們在做like查詢時,應該盡量使查詢的匹配端是具體值,即使用like ‘S%’。