数据库用的是  oracle  11g     400万数据用like '%%'太慢   所以找 oracle  全文索引网上找了些东西看,始终没搞明白。  我想知道   怎么创建   怎么使用。求各路大侠帮忙解决。

解决方案 »

  1.   

    用正则表达式 regexp_like  然后建函数索引。
      

  2.   

    索引的话,不能用%%,可用x%,
    也就是说SQl语句中%数值%,是不走索引的,而数值%是走索引的
    应根据实际内容进行SQL语句的修改
      

  3.   


    oracle 建全文索引   就可以。   但不知道再怎么建 
      

  4.   

    --下面两种写法是一个意思,但是第二钟方法可以用函数索引
    [TEST@myorcl] SQL>select * from dual where 'aaa123bbb' like '%123%';D
    -
    X[TEST@myorcl] SQL>select * from dual where regexp_like('aaa123bbb','.+123.+');D
    -
    Xcreate index index_name on table_name(regexp_like(字段,正则表达式));
      

  5.   


    create index index_name on table_name(regexp_like(字段,正则表达式));
    这个字段是  varchar2(2000)存的包括中文,字母,符号    
    这个正则表达式怎么写?    这样的索引会看到明显的效果吗?   
      

  6.   

    把你的 like 条件写全,才能根据你的描述写正则,效率肯定是明显的,但是会存在索引的通病,数据库会有额外维护索引的开销。