B+树和MySQL数据库索引.ppt

B+树和MySQL数据库索引.ppt

ID:57052171

大小:1.43 MB

页数:28页

时间:2020-07-29

B+树和MySQL数据库索引.ppt_第1页
B+树和MySQL数据库索引.ppt_第2页
B+树和MySQL数据库索引.ppt_第3页
B+树和MySQL数据库索引.ppt_第4页
B+树和MySQL数据库索引.ppt_第5页
资源描述:

《B+树和MySQL数据库索引.ppt》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、B+树及MySQL数据库索引厦门大学数据库实验室罗道文2014-08-02►B树以及B+树的特点以及原理►MySQL存储引擎MyISAM和InnoDB的B+树索引B树特性1.树中每个结点最多含有m个孩子(m>=2);2.除根结点和叶子结点外,其它每个结点至少有[ceil(m/2)]个孩子(其中ceil(x)是一个取上限的函数);3.若根结点不是叶子结点,则至少有2个孩子(特殊情况:没有孩子的根结点,即根结点为叶子结点,整棵树只有一个根节点);B树特性4.所有叶子结点都出现在同一层,叶子节点只有关键字,没有孩子和指向孩子的指针

2、5.每个非终端结点中包含有n个关键字信息:(n,P0,K1,P1,K2,P2,......,Kn,Pn)。其中:a)Ki(i=1...n)为关键字,且关键字按顺序升序排序K(i-1)

3、35和三个存储其他磁盘页面地址的数据。根据算法我们发现17<29<35,因此我们找到指针p2。(3)根据p2指针,我们定位到磁盘块3,并将其中的信息导入内存。【磁盘IO操作2次】(4)此时内存中有两个文件名26,30和三个存储其他磁盘页面地址的数据。根据算法我们发现26<29<30,因此我们找到指针p2。(5)根据p2指针,我们定位到磁盘块8,并将其中的信息导入内存。【磁盘IO操作3次】(6)此时内存中有两个文件名28,29。根据算法我们查找到文件29,并定位了该文件内存的磁盘地址。B树插入►生成树从空树开始,逐个插入关键字

4、。首先在最底层的节点添加一个关键字,如果该节点关键字个数不超过m-1,则插入完成,否则要产生节点分裂。1、咱们通过一个实例来逐步讲解下。插入以下字符字母到一棵空的B树中(非根结点关键字数小了(小于2个)就合并,大了(超过4个)就分裂):CNGAHEKQMFWLTZDPRXYS,首先,结点空间足够,4个字母插入相同的结点中,如下图:2、当咱们试着插入H时,结点发现空间不够,以致将其分裂成2个结点,移动中间元素G上移到新的根结点中,在实现过程中,咱们把A和C留在当前结点中,而H和N放置新的其右邻居结点中。如下图:3、当咱们插入E

5、,K,Q时,不需要任何分裂操作4、插入M需要一次分裂,注意M恰好是中间关键字元素,以致向上移到父节点中5、插入F,W,L,T不需要任何分裂操作6、插入Z时,最右的叶子结点空间满了,需要进行分裂操作,中间元素T上移到父节点中,注意通过上移中间元素,树最终还是保持平衡,分裂结果的结点存在2个关键字元素。7、插入D时,导致最左边的叶子结点被分裂,D恰好也是中间元素,上移到父节点中,然后字母P,R,X,Y陆续插入不需要任何分裂操作(别忘了,树中至多5个孩子)。8.最后,当插入S时,含有N,P,Q,R的结点需要分裂,把中间元素Q上移到

6、父节点中,但是情况来了,父节点中空间已经满了,所以也要进行分裂,将父节点中的中间元素M上移到新形成的根结点中。这样具体插入操作的完成。B树删除B树的删除操作原则:从某个节点删除一个元素之后,该节点仍然要符合B树特性,即关键字树n满足:(ceil(m/2)-1)<=n<=m-1,m表示最多含有m个孩子。当一个节点因为删除元素而不符合上述特性时,首先是向子节点索取元素,如果子节点刚好“脱贫”,就向兄弟节点索取,如果兄弟节点也是刚好“脱贫”,那么就与兄弟节点合并。下面通过实例讲解:操作构造的一棵5阶B树(树中最多含有m(m=5)个

7、孩子,因此关键字数最小为ceil(m/2)-1=2。还是这句话,关键字数小了(小于2个)就合并,大了(超过4个)就分裂)为例,依次删除H,T,R,E。1、首先删除元素H,当然首先查找H,H在一个叶子结点中,且该叶子结点元素数目3大于最小元素数目ceil(m/2)-1=2,则操作很简单,咱们只需要移动K至原来H的位置,移动L至K的位置(也就是结点中删除元素后面的元素向前移动)2、下一步,删除T,因为T没有在叶子结点中,而是在中间结点中找到,咱们发现他的继承者W(字母升序的下个元素),将W上移到T的位置,然后将原包含W的孩子结点

8、中的W进行删除,这里恰好删除W后,该孩子结点中元素个数大于2,无需进行合并操作。3、下一步删除R,R在叶子结点中,但是该结点中元素数目为2,删除导致只有1个元素,已经小于最小元素数目ceil(5/2)-1=2,而由前面我们已经知道:如果其某个相邻兄弟结点中比较丰满(元素个数大于ceil(5

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。