table1  里面有5个字段col1,col2,col3,col4,col5如果我的查询条件有 
 where col1='A'  and col5='test'
 where col2='A'  and col5='test'
 where col3='A'  and col5='test'
 where col4='A'  and col5='test'
应该怎么样建好比较有效率的组合索引呀?我现在是分别建4个col1,col5
col2,col5
col3,col5
col4,col5但这样col5 不是会出现多个索引里面了,不知道会不会影响效率
大家有什么更好的方法吗?

解决方案 »

  1.   

    (col1,col2,col3,col4,col5)建立联合索引
      

  2.   

     where col1='A'  and col5='test'  好像只用到了col1索引,col5没用到
     where col2='A'  and col5='test'  不会使用索引
     where col3='A'  and col5='test'  不会使用索引
     where col4='A'  and col5='test'  不会使用索引
      

  3.   

    实在没办法,估计也就只能这样了,因为有时条件组合比较多,这样col5出现在多个索引里,不知道会不会有很多沉余的问题 呀
      

  4.   

    这样(col5,col1,col2,col3,col4)建立联合索引
      

  5.   

    如果col5的区分度比较大    可以只建立一个col5的索引  其他都可以不要
      

  6.   

    因為表裏有7千多萬筆記錄 單以col5分索引一個區間就有上千萬筆還是不夠噢这样(col5,col1,col2,col3,col4)建立联合索引
    這樣的話,where col5='test' and col2='A'  的話就只能用到col5了,就起不到組合的條件了
      

  7.   

    2楼方案完全不对。col1,col5
    col2,col5
    col3,col5
    col4,col5按照这样建立5个索引就好了。
    另外还可以单独建立一个col5索引。
    这些索引之间不会相互影响的。5维索引,基本等于没有建立索引。