查询更快、占⽤空间更⼩
原则:
-
适合索引的列是出现在 where ⼦句中的列,或者连接⼦句中指定的列
-
基数较⼩ 的表, 索引效果较差 ,没有必要在此列建⽴索引
-
使⽤ 短索引 ,如果对 ⻓字符串列 进⾏索引,应该指定⼀个前缀⻓度,这样能够节省⼤量索引空间,如果搜索词超过索引前缀⻓度,则使⽤索引排除不匹配的⾏,然后检查其余⾏是否可能匹配。
-
不要过度索引 。 索引需要额外的磁盘空间 , 并降低写操作的性能 。在修改表内容的时候,索引会进⾏更新甚⾄重构,索引列越多,这个时间就会越⻓。所以只保持需要的索引有利于查询即可。
-
定义有 外键 的数据列⼀定要建⽴索引。
-
更新频繁字段不适合创建索引
-
若是不能有效区分数据的列不适合做索引列(如性别,男⼥未知,最多也就三种,区分度实在太低)
-
尽量的 扩展索引 ,不要 新建索引 。⽐如表中已经有a的索引,现在要加(a,b)的索引,那么只需要修改原来的索引即可。
-
对于那些查询中很少涉及的列,重复值⽐较多的列不要建⽴索引。
-
对于定义为 text 、 image 和 bit 的数据类型的列不要建⽴索引。