如果索引是field1+field2+field3,那你在查询时用field1会用到这个索引,用field2或field3则不会用。
所以建索引时将经常用来查询的字段放在前面。

解决方案 »

  1.   

    那反过来呢?按filed1+filed2建立索引, field1+filed2+field3进行查询。
      

  2.   

    Index will works if below conditions meets 
    A. in where clause , if the first field of index is used 
    B. the operator of this field is not 'NOT IN ' , 'NOT EXIST'
      

  3.   

    “按filed1+filed2建立索引, field1+filed2+field3进行查询”
    这个索引不会被使用的。
      

  4.   

    black_snail(●○) 你和icevi(按钮工厂)说的刚好相反嘛。
    我该听谁的?
      

  5.   

    我反正记得INFORMIX中,按filed1+filed2+field3建立索引, field1+filed2进行查询。或者按filed1+filed2建立索引, field1+filed2+field3进行查询都会用到索引,但都效率大大降低。
    不知ORACLE会不会这样?
      

  6.   

    “按filed1+filed2建立索引, field1+filed2+field3进行查询”
    这个索引会被使用的。
      

  7.   

    同意KingSunSha(弱水三千) 的看法。
    oracle使用索引时,总是一个一个字段的匹配,只要能与组合索引的字段顺序一样的,都能被使用。