加入收藏 | 设为首页 | 会员中心 | 我要投稿 柳州站长网 (https://www.0772zz.cn/)- 基础存储、数据迁移、云安全、数据计算、数据湖!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

关于MySQL索引面试题的6连炮!

发布时间:2021-03-02 15:24:58 所属栏目:外闻 来源:互联网
导读:个特定的数据结构去找到那一列的值,然后找到对应的行的物理地址即可。 那么回答面试官的一个问题,mysql的索引是怎么实现的? 答案是,不是二叉树,也不是一颗乱七八糟的树,而是一颗b+树。这个很多人都会这么回答,然后面试官一定会追问,那么你能聊聊b+树



个特定的数据结构去找到那一列的值,然后找到对应的行的物理地址即可。

那么回答面试官的一个问题,mysql的索引是怎么实现的?

答案是,不是二叉树,也不是一颗乱七八糟的树,而是一颗b+树。这个很多人都会这么回答,然后面试官一定会追问,那么你能聊聊b+树吗?

但是说b+树之前,咱们还是先来聊聊b-树是啥,从数据结构的角度来看,b-树要满足下面的条件:

(1)d为大于1的一个正整数,称为B-Tree的度。

(2)h为一个正整数,称为B-Tree的高度。

(3)每个非叶子节点由n-1个key和n个指针组成,其中d<=n<=2d。

(4)每个叶子节点最少包含一个key和两个指针,最多包含2d-1个key和2d个指针,叶节点的指针均为null 。

(5)所有叶节点具有相同的深度,等于树高h。

(6)key和指针互相间隔,节点两端是指针。

(7)一个节点中的key从左到右非递减排列。

(8)所有节点组成树结构。

(9)每个指针要么为null,要么指向另外一个节点。

(10)如果某个指针在节点node最左边且不为null,则其指向节点的所有key小于v(key1),其中v(key1)为node的第一个key的值。

(11)如果某个指针在节点node最右边且不为null,则其指向节点的所有key大于v(keym),其中v(keym)为node的最后一个key的值。

(12)如果某个指针在节点node的左右相邻key分别是keyi和keyi+1且不为null,则其指向节点的所有key小于v(keyi+1)且大于v(keyi)。

上面那段规则,我也是从网上找的,说实话,没几个ja

 

(编辑:柳州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读