Mysql索引学习

        

以构建二叉搜索树的形式作为索引,然后查找。

查找的时候就是左小右大的形式去找,时间复杂度:log2n。

只是上面的只是举例子实际是B+树。

Mysql的体系结构:

大多数的:

索引结构:        

如果采用二叉树和红黑树:

都有缺点,不如B-Tree。

B Tree

树的度数指的是一个节点的子节点的个数。

key代表键值。key - value和对象差不多

object = {key:value},LHG = {age:30}.

LHG.age = 30.

4个key,小于20的指针就指向下面的一个枝叶节点。

所以指针会 = count(key)+ 1;10 15 18都是小于20的

23,25,28都是在20和30之间的。类比即可,就这么查询。key下面对应的实体数据。

可视化插入数据 in B - tree:

B-Tree Visualization (usfca.edu)

当插入了5个key的时候,因为5阶的B-Tree只有4个key,5个指针,所以:

会发生split(裂变)

每次都是中间元素往上走,中间元素就是这组数字的中位数,0023和0234都小于345,899和1200都大于345.

关键的来了:**当中间元素组成的超过5阶(4个key,5个指针)会发生什么**

逻辑是一样的,递归:

还是中间元素不断的被挑选。

计算机真的是人类智慧的结晶

B+ tree结构

终于讲到B+Tree了:

这里面的这个数据是只存放在叶子节点的。上面的非叶子节点主要是**起到索引的作用。**

同时这些存放数据的叶子节点形成了一颗单向链表:

插入的中间元素都会出现在叶子节点。

以下是经典的B+Tree

Mysql的B+Tree是双向链表,一图胜千言。

每一个节点都是存储在数据块/页中的。一个数据页在innodb中默认是16kb

哈希结构:

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值