什么是索引:一种数据结构,能更快的检索到需要的数据
为什么选择b+树?
链表的检索效率是:o(n),平衡二叉树的检索效率是logn,b树的检索效率是logn
b树其实是多路平衡树,在每个节点存储的关键字更多,发生的io读取次数就少,效率高,有效利用了磁盘的预读能力
b+树是b树的变种,体现在:
只有叶子节点存储数据,非叶子节点用来做索引,每个叶子节点均有指向前一个和后一个叶子的指针
综上:b+树和b树比较:
扫库和扫表能力更强(只需要遍历叶子节点就可以遍历整棵树)
查询效率更加稳定(数据均存储在叶子节点)
聚蔟索引和非聚蔟索引
聚蔟索引:数据和主键索引存储在一起
主索引的叶子节点存储的是键值对应的数据本身,辅助索引的叶子节点存储的是键值对应的数据的主键键值
非聚蔟索引:数据表和索引表是分开存储的
主索引和辅助索引几乎是一样的。他们的叶子节点的key都存储了指向键值对应的数据的物理地址