是方法一好,因为复合索引所建的第一个子段最好也是where字句中的第一个子段否则有可能使索引用不上

解决方案 »

  1.   

    方法二好。这样可以保证你的查询迅速定位在empno='888888' 的范围内。建议你的第二种索引
    SALARY_HIS(EMPNO, MONTH,YEAR , ITEMNO)
    改为
    SALARY_HIS(EMPNO, YEAR,MONTH, ITEMNO)可能更好点。
      

  2.   

    完全同意 Lastdrop(空杯) 的说法!也就是说,泥的第二个索引建立的不大妥当~这样建应该更好点
    SALARY_HIS(EMPNO, ITEMNO, MONTH, YEAR)
      

  3.   

    对于这句特定的查询,因为where条件用到了所有的索引字段,所有两种索引方式没有大的区别。要考察那种索引更好,必须知道在应用中会频繁对哪个字段进行查询:如果要经常根据日期进行所有或者部分员工的薪资统计,那么第一种比较好;如果使用中更多是根据员工号进行查询,那么第二种比较好。如果这两种情况都经常出现,你也可以建立两个索引。