1、索引个数越多,对insert语句负面影响越大;无序插入影响更大;
2、对于delete语句来说,有好有坏。在海量数据中定位删除少量数据,这个条件列是索引列是必要的,但是如果有过多列有索引,影响还是明显的,因为其他列索引也需要更新。特别是在删除大量数据的时候;
3、对update语句影响最小,快速定位少量数据并更新与delete类似;但是具体修改某列时,不会触及其他列索引的更新;
因此对于有很多索引的大表,可以先让索引失效,等插入完毕后,再让索引生效。
另外建索引时会引发排序,以及会产生表锁,在建索引的过程中,应用程序对该表的所有更新都将挂起,所以在线上建索引的时候要特别注意;可以在线重建索引来避免锁表:
alter index PK_ITEM rebuild online nologging;
CREATE INDEX index_name ON table (col1,...) ONLINE;