- 表的主键,外键
- 针对数据量大,且查询比较频繁的表建立索引
- 针对常作为查询条件(where),排序(order by),分组(group by)操作的字段建立索引
- 尽量选择区分度高的列作为索引,尽量建立唯一索引,区分度越高,使用索引的效率越高
- 如果是字符串类型的字段,字段的长度较长,可以针对字符串的特点,建立前缀索引
- 尽量使用联合索引,减少单列索引,查询时,联合索引很多时候可以索引覆盖,避免回表,提高查询效率
- 要控制索引的数量,索引过多,维护索引结构的代价很大,会影响增删改的效率
- 经常与其他表进行连表查询,在连接字段上可以建立索引
- 索引应该建立在小字段上,对于大的文本字段不要建立索引
- 如果索引列不能存储null值,则在建表时加入not null约束。当优化器知道每列是否包含null值时,它可以更好地确定哪个索引最有效地用于查询。