我们都知道MySql索引效率很高!那其中的原理是什么呢?先跑出个问题来:二叉树、红黑树(二叉平衡树)、BTree(平衡多叉树)、B+tree这几种类型中哪一种是mysql索引所选择的呢?
这个问题好多同学回答不出来,回去百度,结果也不是太明白吧!
这里我告诉大家,mysql所选的是B+tree,那B+tree又是什么呢?
B+树:其实他是Btree的变种,是在他的基础上做了优化,
优点:
1、IO次数更少
2、范围查询简便
3、查询性能稳定
特征:
InnoDB中的主键索引其实就是聚集索引,当然所有的数据都存在了主键索引位于的聚集索引B+Tree结构的叶子节点之中。这就是为什么我们在设计主键的时候要求我们的铸剑师有序原因了。假如我们的大小随机,那每次进来叶子节点的位置随机的,这样就会出现我们的页分裂,从而导致性能下降!
如果我们按照有序来处理,则每次都是按照顺序一排一排的进行排列,这样能够完美的比来了我们的页分裂。
好的,今天就先讲到这里,欢迎大家留言讨论
欢迎大家关注我的工种昊 《coder练习生》