【问题标题】:Oracle reverse index and queryOracle 反向索引和查询
【发布时间】:2009-10-08 15:49:22
【问题描述】:

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

CREATE INDEX myindex ON myTable(name) REVERSE;

SELECT name FROM myTable WHERE name='Peter';

SELECT name FROM myTable WHERE name='reteP';

【问题讨论】:

    标签: sql oracle indexing


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      您不需要反转条件:Oracle 会自动为您完成。

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

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

      将导致全面扫描

      【讨论】:

      • 谢谢 - 我就是这么想的。
      【解决方案3】:

      不,你不知道 - 请参阅 Burleson 了解完整的瘦身信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-11
        • 1970-01-01
        • 2014-05-30
        • 2017-10-05
        • 1970-01-01
        相关资源
        最近更新 更多