一,索引设计原则
1,针对数据量较大,且查询较频繁的表建立索引(一般超过百万数据量,索引是提高检索效率,如果不经常查,建立索引意义不大);
2,针对于常作为查询条件(where)、排序(order by)、分组(group by)后的字段,建立索引,尽量使用联合索引;
3,尽量选择区分度高的字段作为索引,尽量建立唯一索引,区分度越高,使用索引的效率越高(区分度高:如用户表的用户名、身份证等字段;区分度低:如性别、状态、逻辑删除等字段);
4,如果是字符串类型的字段,字段的长度较长,可以针对字符串的特点,建议建立前缀索引;
5,尽量使用联合索引,减少单列索引,查询时,联合索引很多时候可以覆盖索引,节省存储空间,避免回表,提高查询效率;
6,要控制索引的数量,索引并不能多多益善 ,索引越多,维护索引结构的代价越大,会影响增删改的效率;
7,如果索引列不能存储NULL值,请在创建表的时候使用NOT NULL来约束该字段。当优化器知道每列是否包含NULL值时,它可以更好地确定哪个索引最有效地用于查询。
二,总结