哪些列适合建立索引
- 在经常需要搜索的列上,建立索引,增加搜索速度。
- 在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构。
- 在经常用在连接的列上,这些列主要是外键,可以加快连接速度。
- 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,所以其指定的范围是连续的。
- 在经常需要排列的列上创建索引,因为索引已经排序,这样可以利用索引的排序,加快查询的速度。
- 在经常需要使用WHERE子句的列上创建索引,加快条件的判断速度。
哪些列不利于创建索引
- 对于查询中很少使用或者参考列不应该创建索引。这是因为,既然这些列很少使用,那么创建和不创建都没有效果,反而由于增加了索引,降低了系统的维护和增大了空间的需求。
- 对于那些是有很少数据值的列不应添加索引。由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据很大比例,即需要在表中搜索的数据行比例很大,增加缩影并不能明显的加快搜索速度。
- 对于那些定义为text,image,bit数据类型的列不应添加索引,这是因为这些数据要么太大,要么取值很小。
- 当修改性能大于检索性能的时候不应添加索引。这是因为,修改性能和检索性能是相互矛盾的,当增加索引时,会提高检索性能,但是会降低修改性能。当减小索引时,会提高修改性能,降低索引性能。因此,当修改性能远远大于检索性能时,不应该添加索引。