有人可以告诉我Oracle中INSTR
和LIKE
之间的区别吗?
Oracle10g中哪一个更快?
答案 0 :(得分:8)
这取决于数据和模式。如果使用like 'a%'
,那么Oracle可以使用BTree索引查找匹配项,因为它可以使用模式的开头搜索btree,然后只考虑子树。
这对LIKE '%a'
不起作用,但您可以通过创建一个计算列来解决此问题,该列会反转您要搜索的列中的所有值(因此您可以获得上面的模式)。
如果使用散列索引,那么Oracle几乎无法扫描整个索引。当只有很少的不同值时,它可能会更快。
我不确定INSTR
是否可以使用索引,因为它没有固定的锚。
与所有表现问题一样:
答案 1 :(得分:3)
答案 2 :(得分:2)
答案 3 :(得分:1)