聚簇索引:
- 顺序读写(主键为自增长的id,如果是字符串,比如uuid,随机的字符串等等,那么就不会是顺序读写了。那就是随机读写的,那么效率就会大大降低了)
- 范围查找更快速
- 范围查找自带顺序
非聚簇索引:
- 以该字段为条件查询时,避免了全表扫描,全表扫描是非常耗时的
- 覆盖索引不用回表操作(什么是覆盖索引呢,就是当我们只需要返回该字段时,那么再走该字段的索引时,最后就不会回表,就把该值返回就行。)
索引缺点
一个东西肯定是有利有弊的,说了优点再来说缺点。
我们从两个方面进行说,空间和时间上
空间上:每一个索引都是一个B+树,每一个B+树都有许多页,每一页都会占固定大小16kb。一颗很大的B+树就由很多的页组成,那么就会占用很大一片存储空间。并且如果有多个索引。那就更大了
时间上:crud,对于读操作,并不耗费时间,相反还打打降低事件。但其他的操作就很难说了,增加,删除,修改,这些操作都可能会引起树的排序造成破坏。维护B+树也是很耗费性能的。
有利有弊,我们不能盲目的使用索引,只有在合适的情况使用才能体现其优点。