一.重复度高的字段不适合检索引,就是所有字母26种可能,建立索引也不顶用!
一个表可能会涉及两个数据结构(文件)。一个是表本身,存放表中的数据,另一个是索引,把一个或几个字段(组合索引)按规律排列起来,再附上该字段所在行数据的物理地址(位于表中)。
为什么重复度高不适合建索引?
1.你访问索引需要付出额外的IO开销,你从索引中拿到的只是地址,要想真正访问到数据还是要对表进行一次IO。假如你要从表的100万行数据中查几个数据,那么利用索引迅速定位,访问索引的IO开销就不值一提;但如果你是从100万行数据中查50万行数据,就比如性别字段,那你相对需要访问50万次索引,再访问50万次表,加起来的开销并不会比直接对表进行一次完整扫描小。
2.虽然索引大大提高了查询速度,同时却会降低更新表的速度,对表进行insert,update和delete时不仅要保存数据还要更新索引,建立索引会占用磁盘空间。一般情 况这个问题不太严重,但如果你在一个大表上创建了多种组合索引,索引文件的会膨胀很快。
3.聚集索引指的是表本身中数据按哪个字段的值来进行排序。因此,聚集索引只能有一个,而且使用聚集索引不会付出额外IO开销
二.如果想要插入很多数据,应该先删除索引,再插入数据,然后在建立索引;
因为便插入数据边维护索引,开销很大,索引会影响插入数据的速度