带你轻松接触使用特殊索引时的注意事项

  在Oracle里除了我们常用的B树索引外,还有一些特殊索引能被使用。

  如:倒序索引,位映射索引,函数索引等。

  倒序索引:
  Oracle DOC上说倒序索引比较适合于序列号产生的字段,如唯一编号。

  但是这样的索引对于范围的比较,如 > < between ... and ... 等操作是不起作用的;

  只对 = in 等操作才会调用索引。

  所以一般的自动增长的PK字段还是用常规B树索引好一些。

  位映射索引:
  适合于唯一记录数较少,DML操作较少的字段。如历史数据表里的类别字段。

  它可以减少索引存储空间的占用,并提高访问速度。

  最好在查询时加提示/*+ first_rows */ 或者 /*+ index(表名 索引名)*/ 确认使用位映射索引。

  函数索引:
  需要修改数据库里面两个动态参数:

  QUERY_REWRITE_ENABLED=TRUE
  QUERY_REWRITE_INTEGRITY=TRUSTED

  函数索引才会在有提示/*+ first_rows */ 或者 /*+ index(表名 索引名)*/ 时被使用。