每个字段一个索引和一个索引里包含几个字段。如索引index1 (ID)+index2(Name)和index1(ID + Name),两者有何区别?怎么应用?

解决方案 »

  1.   

    单字段就不多说了多字段索引,就是联合索引,我的理解:
    create index idx_test on test(a,b)
    其实就是字典序.先按a排序,a相同的按b排序.所以当你查a或ab的时候,能够利用到这个索引.但当你只查b的时候,索引对你的帮助不大.可能可以跳跃查找.
    就像你字典上查第一个字母为s的单词很好查,因为你用到的是一级索引.但当你查第二个字母为s的单词就比较繁琐了,虽然也比较方便,就在26个不同的地方.但这个二级索引就分散在字典的各处了.要是你只查第3个字母为s的,那这个索引给你的帮助就更少了.所以一定要利用到第一级索引让你查找的范围快速缩小.并不是强制要用第一级别.但如果你的业务常常要你只用到二级索引,那你就要考虑重构联合索引了