反向索引:是不是反键索引:reverse key index在这种情况下使用比较好:比如有一个字段id,他的值落在一个很小的区间,比如从9000-9999,如果建b-tree索引,那么值过于紧密,反键的原理是把值取反,那么id的区间就从0009-9999,区间就被放大,这个时候通过索引来查找数据效率会比较高(oracle这么说的)。这就是反键索引。不知道是不是你说的反向索引

解决方案 »

  1.   

    有关全文索引:
    http://expert.csdn.net/Expert/topic/2028/2028728.xml?temp=.7110407还要可以用函数索引(不建义用)
    create index index_name on tabname(instr(col_name,'adasdf'));
      

  2.   

    CREATE INDEX "QI"."AA" 
        ON "QI"."A" 
        TABLESPACE "QI" REVERSECREATE INDEX "QI"."AA" 
        ON "QI"."A" 
        TABLESPACE "QI" REVERSE
      

  3.   

    举例:
    如果只是%abcde ,反向索引肯定是好用的
    但存在%abcde%或者abcde%就不好用了
    我们经常用的btree索引是将列的值分散到不同的叶子上(叶子上会存在n行的),反向就会安装反向的列值分散到叶子上,比如原来的值是abcde,反向建索引就会用值edcba来把其放到相应的索引树的某个叶子上最典型的情况用反向索引,是当这列值都非常的接近,然后直接建索引,会造成大量的行(说白了就是rowid)放到一个叶子上,导致索引会慢,还会形成hot block但你的这种%abcde肯定也是适用的但还是建议建立相应的反向索引后,用执行计划看一下,是否用到了所建立的反向索引!