Oracle反向索引和查询

时间:2009-10-08 15:49:22

标签: sql oracle indexing

如果我在VARCHAR2列上的Oracle中创建反向索引,是否还需要反转WHERE子句中使用的值?

CREATE INDEX myindex ON myTable(name) REVERSE;

SELECT name FROM myTable WHERE name='Peter';

SELECT name FROM myTable WHERE name='reteP';

3 个答案:

答案 0 :(得分:5)

您要搜索的值是“彼得”。如果您搜索'reteP',您将返回零行(或至少不是您要查找的行)。

答案 1 :(得分:2)

您需要它来改善数据分发。

就像许多电影名称以The开头,这会降低索引性能。

您无需撤消条件:Oracle会自动为您执行此操作。

但是,您不能再进行范围查询了:

SELECT name FROM myTable WHERE name BETWEEN 'A' AND 'C'

将导致完整扫描

答案 2 :(得分:0)

不,你没有 - 看到Burleson完全瘦了。