基于合理的数据库设计,经过深思熟虑后为表建立索引,是获得高性能数据库系统的基础。而未经合理分析便添加索引,则会降低系统的总体性能。索引虽然说提高了数据的访问速度,但同时也增加了插入、更新和删除操作的处理时间。
是否要为表增加索引、索引建立在那些字段上,是创建索引前必须要考虑的问题。解决此问题的一个比较好的方法,就是分析应用程序的业务处理、数据使用,为经常被用作查询条件、或者被要求排序的字段建立索引。为经常出现在关键字order by、group by、distinct后面的字段,建立索引。
一、.以下情况适合建立索引
1.主键自动建立唯一索引
2.频繁作为查询条件的字段,建立索引
3.经常用作表连接的字段,建立索引
4.频繁更新的字段不适合建立索引,因为每次更新不仅仅是更新了表记录而且还会更新索引
5.where条件里用不到的字段不建立索引
6.单列/组合索引的选择,选who?(在高并发下倾向创建组合索引)
7.查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度。
8.查询中统计或者分组字段适合建立索引
二、不需要建立索引的
1.表记录太少
2.经常增删改的表
3.如果某个数据列包含许多重复的内容,比如说性别,为它建立索引就没有太大的实际效果。
注意对一个存在大量更新操作的表,所建的索引数目一般不大于3个,最大不要超过5个。索引虽说提高了访问速度,但太多索引会影响数据的更新操作。