- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【摘要】??????最近在看Mysql的存储引擎中索引的优化,神马是索引,支持啥索引.全是浮云,目前Mysql的MyISAM和InnoDB都支持B-Tree索引,InnoDB还支持B+Tree索引,Memory还支持Hash.今天从最基础的学起,学习了解BTree,B-Tree和B+Tree。【主题】B-Tree 介绍B-Tree 特性有哪些信誉好的足球投注网站插入等B+Tree介绍B*Tree 介绍【内容】1. B-Tree 介绍?????1970年,R.Bayer和E.mccreight提出了一种适用于外查找的树,它是一种平衡的多叉树,称为B树,其定义如下:一棵m阶的B树满足下列条件:树中每个结点至多有m个孩子;除根结点和叶子结点外,其它每个结点至少有m/2个孩子;若根结点不是叶子结点,则至少有2个孩子;所有叶子结点(失败节点)都出现在同一层,叶子结点不包含任何关键字信息;所有非终端结点中包含下列信息数据 ( n, A0 , K1 , A1 , K2 , A2 , … , Kn , An ),其中: Ki (i=1,…,n)为关键字,且Ki Ki+1 , Ai (i=0,…,n)为指向子树根结点的指针, n为关键字的个数非叶子结点的指针:P[1], P[2], …, P[M];其中P[1]指向关键字小于K[1]的子树,P[M]指向关键字大于K[M-1]的子树,其它P[i]指向关键字属于(K[i-1], K[i])的子树;?????在B树中,每个结点中关键字从小到大排列,并且当该结点的孩子是非叶子结点时,该k-1个关键字正好是k个孩子包含的关键字的值域的分划。因为叶子结点不包含关键字,所以可以把叶子结点看成在树里实际上并不存在外部结点,指向这些外部结点的指针为空,叶子结点的数目正好等于树中所包含的关键字总个数加1。B树中的一个包含n个关键字,n+1个指针的结点的一般形式为:???(n,P0,K1,P1,K2,P2,…,Kn,Pn)其中,Ki为关键字,K1 K2 … Kn,???Pi???是指向包括Ki到Ki+1之间的关键字的子树的指针。-- 图1 B-tree示意图2. B-Tree特性2.1 B-Tree 特性关键字集合分布在整颗树中;任何一个关键字出现且只出现在一个结点中;有哪些信誉好的足球投注网站有可能在非叶子结点结束;其有哪些信誉好的足球投注网站性能等价于在关键字全集内做一次二分查找;自动层次控制;2.2 B-Tree有哪些信誉好的足球投注网站原理B-树的有哪些信誉好的足球投注网站,从根结点开始,对结点内的关键字(有序)序列进行二分查找,如果命中则结束,否则进入查询关键字所属范围的儿子结点;重复,直到所对应的儿子指针为空,或已经是叶子结点;因此,B-Tree的查找过程是一个顺指针查找结点和在结点的关键字中进行查找的交叉进行的过程。-- 图2 高度与关键码的计算过程2.3 B-Tree 插入?????B-树是从空树起,逐个插入关键码而生成的。?????在B-树,每个非失败结点的关键码个数都在[ m/2 -1, m-1]之间。插入在某个叶结点开始。如果在关键码插入后结点中的关键码个数超出了上界 m-1,则结点需要“分裂”,否则可以直接插入。?????实现结点“分裂”的原则是:?????设结点 A 中已经有 m-1 个关键码,当再插入一个关键码后结点中的状态为( m, A0, K1, A1, K2, A2, ……, Km, Am)其中 Ki Ki+1, 1 = m这时必须把结点 p 分裂成两个结点 p 和 q,它们包含的信息分别为:?????结点 p:( m/2 -1, A0, K1, A1, ……, Km/2 -1, Am/2 -1)?????结点 q:(m - m/2, Am/2, Km/2+1, Am/2+1, ……, Km, Am)?????位于中间的关键码 Km/2 与指向新结点 q 的指针形成一个二元组 ( Km/2, q ),插入到这两个结点的双亲结点中去。3. B+Tree3.1 B+Tree定义?????B+树可以看作是B树的一种变形,在实现文件索引结构方面比B树使用得更普遍。一棵 m 阶B+树可以定义如下:树中每个非叶结点最多有 m 棵子树;根结点 (非叶结点) 至少有 2 棵子树。除根结点外, 其它的非叶结点至少有ém/2ù 棵子树;有 n 棵子树的非叶结点有 n-1 个关键码。所有叶结点都处于同一层次上,包含了全部关键码及指向相应数据对象存放地址的指针,且叶结点本身按关键码从小到大顺序链接;每个叶结点中的子树棵数 n 可以多于 m,可以少于 m,视关键码字节数及对象地址指针字节数而定。若设结点可容纳最大关键码数为 m1,则指向对象的地址指针也有 m1 个。结点中的子树棵数 n 应满足 n 属于[m1/2, m1]若根结点同时又是叶结点,则结点格式同叶结点。所有的非叶结点可以看成是索引部分,结点中关键码
文档评论(0)