面试题:什么时候需要创建索引?
我的回答:
①大表中的关键字段,因为大表数据量比较大,所以在关键字段上加索引,可以大大提高查询效率。
②排序的字段,因为排序的字段加上索引的话,可以很好的利用索引的特性,索引就是按某种顺序存储的,索引可以提高查询速度。
③和其他表连接的字段,加上索引之后回提高表连接的效率。
④经常被当做where后面查询条件的字段,加上索引之后查询更快捷。
面试题:什么时候不需要创建索引?
我的回答:
①小表不需要创建索引,因为小表数据量比较小,直接检索整个表可能比加索引还要快。
②很少被当做查询条件的字段,因为这个字段很少被用作查询条件,给他加索引,不会提高查询效率。
③频繁被插入、删除、更新的表,不需要加索引。因为频繁的插入、删除、更新会增加索引的维护成本。
④数据离散度不高的字段,比如:性别。一张表中的性别字段,只有男和女两个值,值的取值范围非常小,加索引和不加索引,效率差不多。