全文检索结果group by性能的问题
全文检索结果group by性能的问题
select area from test where contains(title,'领导',1)>0  group by area
查询结果多了就非常慢,我在area 字段上是建有索引的,但用不上

解决方案 »

  1.   

    索引要建在where条件检索的数据列上
      

  2.   

    up
    你的可以建个函数索引 
    contains(title,'领导',1) 
      

  3.   

    1.建立函数索引contains(title,'领导',1)
    2.增大临时表空间
      

  4.   


    --你可以这么写:
    select area 
    from test 
    where instr(title,'领导')>0 
    group by area;
    --也可以这么写:
    select area
    from test
    where title like '%领导%'
    group by area;
      

  5.   

    确实,索引建在where条件检索的数据列上时,查询的速度比较快!
      

  6.   

    有全文检索的索引的,就是group by慢 
      

  7.   

    SELECT STATEMENT, GOAL = CHOOSE                        8        1        36        7
    SORT GROUP BY                        8        1        36        7
      TABLE ACCESS BY INDEX ROWID        qyjhxa        test         2        1        36        1
       DOMAIN INDEX        qyjhxa        test_IDX_SEARCH        0
                            
    test_IDX_SEARCH 是全文检索的索引
    条件里增加and area is not null 还是很慢 ,没有group by 是很快的