如果我在VARCHAR2列的Oracle中創建反向索引,是否還需要反轉WHERE子句中使用的值?Oracle反向索引和查詢
CREATE INDEX myindex ON myTable(name) REVERSE;
SELECT name FROM myTable WHERE name='Peter';
或
SELECT name FROM myTable WHERE name='reteP';
如果我在VARCHAR2列的Oracle中創建反向索引,是否還需要反轉WHERE子句中使用的值?Oracle反向索引和查詢
CREATE INDEX myindex ON myTable(name) REVERSE;
SELECT name FROM myTable WHERE name='Peter';
或
SELECT name FROM myTable WHERE name='reteP';
您需要它來改善數據分佈。
就像許多電影名稱都以The
開頭,這會降低索引性能。
你不需要扭轉的條件:Oracle
會自動爲你做。
但是,你不能這樣做範圍查詢了:
SELECT name FROM myTable WHERE name BETWEEN 'A' AND 'C'
將導致全掃描
不,你不 - 看到Burleson爲全瘦。
您正在搜索的值是「彼得」。如果您搜索'reteP',您將返回零行(或至少不是您要查找的行)。
謝謝 - 這就是我的想法。 – Gandalf