MySql底层索引原理
创始人
2024-05-04 11:47:26

前言

我们都知道MySql索引效率很高!那其中的原理是什么呢?先跑出个问题来:二叉树、红黑树(二叉平衡树)、BTree(平衡多叉树)、B+tree这几种类型中哪一种是mysql索引所选择的呢?

这个问题好多同学回答不出来,回去百度,结果也不是太明白吧!

这里我告诉大家,mysql所选的是B+tree,那B+tree又是什么呢?

B+tree优点

B+树:其实他是Btree的变种,是在他的基础上做了优化,

优点:

1、IO次数更少

2、范围查询简便

3、查询性能稳定

特征:

  1. 有K个子树的中间结点包含有k个元素(B树中有k-1个元素),每个元素只保存索引,而不保存数据,所有数据都保存在了叶子节点(k指的是每个节点的关键字个数,另外还有一个m指的是这棵树的高度)
  2. 所有数据都存放在了我们叶子节点上面,以及指向包含这些元素记录的指针(双向循环列表),并且我们的叶子节点是从小到大的顺序排列的,这样便于我们查找和排序。
  3. 所有的子节点都保存着中间节点元素

InnoDB存储引擎

InnoDB中的主键索引其实就是聚集索引,当然所有的数据都存在了主键索引位于的聚集索引B+Tree结构的叶子节点之中。这就是为什么我们在设计主键的时候要求我们的铸剑师有序原因了。假如我们的大小随机,那每次进来叶子节点的位置随机的,这样就会出现我们的页分裂,从而导致性能下降!

如果我们按照有序来处理,则每次都是按照顺序一排一排的进行排列,这样能够完美的比来了我们的页分裂。

好的,今天就先讲到这里,欢迎大家留言讨论

欢迎大家关注我的工种昊 《coder练习生》

相关内容

热门资讯

北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...