数据库
索引的基本原理
索引用来快速需按照那些特定值的记录,如果没有索引,需要遍历来查找。
索引的原理:将无序的数据变成有序的
(1)把创建了索引的内容进行排序
(2)对排序的结果生成倒排表
(3)在倒排表的内容上拼上数据地址连
(4)在查询的时候先拿到内容,在拿到地址连,从而拿到具体的数据
为什么一般采用B+树索引?
mysql聚组和非据组索引的区别
都是B+树的数据结构
聚组:索引和数据放在一起,找到了索引也就找到了数据,并且有一定的顺序组织,数据的物理存储顺序和索引顺序是一致的,即:只要索引是相连的,那么对应的数据也就一定也是相邻的放在一起。
非剧组索引:叶子节点不存储数据,存储的是地址,也就是先找到地址,再根据地址找到数据,就像一本书的目录一样
聚组优势(非得劣势):
1.查询可以只要获得数据,相比非要做两次的情况下效率更高。
2.对范围查询的效率很高,因为他是按照一定的顺序进行组织的。
3.适合用在排序的场合,非就不适合
劣势:
1.维护剧组索引得代价很高,占用的空间很大
2.存储稀疏