Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > Mysql BTree与B+Tre

Mysql 索引 BTree 与 B+Tree 的区别(面试)

作者:阿常呓语

这篇文章主要介绍了Mysql索引BTree与B+Tree的区别,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下

前言

​ 说起面试,很多同学都经历过,但是 面试中 可能会遇到各种问题,MySQL 的问题 也是非常多,最近我也经常面试,也希望问一些数据库一些偏理论和底层的东西,来考察同学对技术的理解程度, 之后 我会更新这个系列的 面试。

主要更新的内容主要是: 我经常面试 一些面试者 喜欢问的一些问题,这是 第一篇 就更新 数据库相关的吧

BTree 基本概念

B树。B树被称为自平衡树,因为它的节点是按顺序遍历排序的。在B树中,一个节点可以有两个以上的孩子。而且高度在每次更新时都会自动调整。在B树中,数据是按照特定的顺序排序的,最低值在左边,最高值在右边。在B树中插入数据或键,比二叉树更复杂。

Btree 的特点:

来一个 max Degree =3 的一个图

在线生成BTree 的图形

在这里插入图片描述

B+Tree 的特点

B+tree 多路平衡查找树:

B+Trees 特点如下:

图形生成地址

在这里插入图片描述

查找过程的区别

两种索引 查找过程的区别:

B+tree 需要找到叶子节点 才能找到数据, 而Btree 可能不需要找到叶子节点 就可以找到数据

B+Tree索引 如何提高索引的查询性能 ?

为啥 B+Tree 会比 BTree 高度要低呢?

页(Page)是Mysql中磁盘和内存交换的基本单位, 也是Mysql管理存储空间的基本单位。

Page 是InnoDB存储引擎磁盘管理的最小单位,每个页默认16KB,innodb_page_size 可以通过这个参数进行修改

B+Tree 中的非叶子节点 不存储数据, 只存关键字,所以一个Page 中可以容纳更多的索引项, 一是可以降低树的高度,二是 在一个内部节点中可以定位更多的叶子节点。

到此这篇关于Mysql 索引 BTree 与 B+Tree 的区别(面试)的文章就介绍到这了,更多相关Mysql BTree与B+Tre内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文