添加复合索引的表中,where条件不包含索引首字段,这种情况下不走走索引(除了跳跃)
为什么呢?

解决方案 »

  1.   

    这是显而易见的,非首字段在索引里如何匹配呢?
    索引都是按关键字段排序后生成的,如果复合索引按col1,col2字段建立索引,
    如果where条件中只有col2,是不能利用索引的。
      

  2.   


    因为where条件里面没有索引首字段啊,不满足组合索引条件啊。
    比如你将col1、col2这2个字段建立组合索引了,要让sql查询语句走组合索引(col1,col2)index的话,where条件必须有col1、col2这2个字段的判断条件,否则就不走这个组合索引。其实就相当于股份制公司里面的董事会一样,只要最大的那个股东不同意,那么你提交的报告或者决策就不会在董事会上得到通过。
      

  3.   


    复合索引(col1,col2) 索引首字段col1 不在where 里面是肯定不走的 没有利用到索引肯定不走的