设计原则
低选择性的列不加索引,如性别;
常用的字段放在前面;选择性高的字段放在前面;
需要经常排序的字段,可加到索引中,列顺序和最常用的排序一致;
对较长的字段数据类型优先考虑前缀索引如index(url(64));
只创建需要的索引,避免冗余索引,如index(a,b)index(a)。
MySQl索引的限制
只支持B+tree,hash索引不支持bitmap;
不支持表达式,函数索引;
不支持全模糊匹配;
Innodb索引最大支持768字节,myisam索引最大支持1000字节;
超过30%的扫描比例时,直接走全索引扫描;
Blob和text类型的列只能创建前缀索引;
Join语句中join字段类型不一致的时候MySQL无法高效实用索引。