我数据量300万条,查询速度非常的慢,可能是我在where 用到like ‘%X%’,就用不到索引了,请问应该如何解决速度慢的这种问题?听说全文检索可以,不知效果如何,对这个全文检索没有研究,希望得到指点。谢谢

解决方案 »

  1.   


    例子
    SELECT * FROM test;
    /*
    ID NAME
    1 刘德华
    2 刘德华
    3 刘德华
    4 张学友
    5 张学友
    */
    CREATE INDEX IND_name1 ON test(NAME) INDEXTYPE IS CTXSYS.CONTEXT;
    SELECT * FROM test WHERE  CONTAINS(NAME, '德') > 0;
    输出:
    /*
    1 刘德华
    2 刘德华
    3 刘德华*/
      

  2.   

    楼上讲的很好,不过索引会增加index表空间,如果仅仅只是想QUERY数据的得到速度提升的话个人建议用
    添加优化提示/*+ FIRST_ROWS */ 的方式
    SELECT /*+append*/ * FROM TABLE_NAME;如果字段不是很多,*用具体字段替代效果更明显!
      

  3.   

    SELECT * FROM test WHERE  CONTAINS(NAME, '德') > 0;
    的 > 0是?????????