`

树的演变理解

 
阅读更多

演变过程:

二叉树----》二叉搜索树----->AVL树-----》(多路搜索树)B树------》B+树

 

~~~~~~~~~~~~~~~~~~~~~~~

 

B树就是查找,是值的树,索引是查找值,在B树里找到值后,返回rowid即记录。

rowid是伪列 记录的位置

一个索引一个B树

聚集索引是主键的 只有一个

非聚集索引普通随便 上限可能是200多

 

B树是多路搜索树,为了压缩高度,二叉改为多叉,节点含有更多的关键字

平衡了查找更快 O(lg N) =高度 或 减1

最坏情况 O(N) 

 

 

~~~~~~~~~~~~~~~~~~~~~~~

B树 B+树 AVL树时间复杂度都是lgN,索引还用B树的原因:B树节点关键字多,可以一下查出来整块数据(就算这次用不到以后会用到其它的数据) 减少IO次数,B+树则叶子结点是链表,查询连续的数据更快。

 

 (B树的每个节点可以存储多个关键字,它将节点大小设置为磁盘页的大小,充分利用了磁盘预读的功能

 

找值时 AVL树是等于找,B树在节点里找到(节点有多关键字),然后找到再返回该节点,节点含有其它相近的数据,故减少IO次数。OK

 

~~~~~~~~~~~~~~~~

(在数据库中基于范围的查询是非常频繁的,因此MySQL最终选择的索引结构是B+树而不是B树。)

范围查找,数据库多为范围查找:

B+树更快,因为叶子都是链表,只需要找到第一个节点,后面直接链过去,一直到不满足条件为止,



 3--7,顺藤摸过去: B+树

 

B树则是每次都是要遍历整棵树

 (访问完第一个关键字所在的块后,得遍历这个B树,获取下一个块

 

 

总之,

https://blog.csdn.net/weixin_30531261/article/details/79312676 写道
数据库索引采用B+树的主要原因是B树在提高了磁盘IO性能的同时并没有解决元素遍历的效率低下的问题。正是为了解决这个问题,B+树应运而生。B+树只要遍历叶子节点就可以实现整棵树的遍历。而且在数据库中基于范围的查询是非常频繁的,而B树不支持这样的操作(或者说效率太低)。

 也就是说,B树,B+树都减少了IO,但是B+树查起来更快

  • 大小: 36.9 KB
分享到:
评论

相关推荐

    PythonTreeEvolution:模拟树演变

    《PythonTreeEvolution:模拟树演变》 在Python编程领域,我们经常遇到各种各样的应用场景,其中模拟自然现象,如生物进化、物理过程等,是一种非常有趣的实践。本项目"PythonTreeEvolution"正是这样一个专注于模拟...

    君子内涵的演变——从左传到论语.doc

    君子内涵的演变——从左传到论语...通过对《左传》和《论语》的分析,我们可以更好地理解“君子”内涵的演变过程和历史原因,从而更好地继承和发扬中国传统文化的精髓。 关键词:君子;左传;论语;内涵演变;现实意义

    QuadTree四叉树实现代码 C#

    它是由四分树的概念演变而来的,每个节点都有四个子节点,分别代表左上、右上、左下和右下四个区域。四叉树在计算机图形学、地理信息系统、图像处理和游戏开发等领域有广泛应用,尤其是2D碰撞检测。 在C#中实现四叉...

    系统进化树构建

    进化树,也称为种系树,是通过分析生物序列数据来推断它们的共同祖先和历史演变过程的一种图形表示。在构建进化树的过程中,通常会涉及以下几个关键步骤和算法: 1. **序列排列(Sequence Alignment)**:首先,...

    进化树分析

    基因组学作为一门研究基因及其产物组成、结构、功能和演变规律的学科,常常利用进化树来比较不同生物种群的基因序列,从而揭示其演化关系和进化历程。生物信息学作为一门交叉学科,其利用信息技术处理和分析生物数据...

    mrbayes算法实现进化树

    在生物信息学领域,构建生物物种的进化树是一项核心任务,它有助于我们理解不同物种之间的亲缘关系、进化历程以及遗传特征的演变。mrbayes算法就是用于这一目的的一种流行工具,它基于贝叶斯统计理论来推断物种的...

    tj-1.3.src.tar.gz_生物_生物进化树_进化树

    《生物进化树:从olduvai-src看生命历程的演变》 生物进化树,作为生物学领域的一个重要概念,是描述生物种类演变历程的一种图形化表示方法。它将各种生物按照其遗传关系和演化历史,以树状结构进行展示,帮助科学...

    mega5系统进化树

    此外,MEGA5还支持基于基因组的微生物分类,这对于快速识别未知微生物种类、探究病原体的演变和传播路径有着重要意义。 在序列比对方面,MEGA5采用了多种算法,如ClustalW、 Muscle等,能够处理多序列比对问题,...

    overlap-interval-.zip_interval overlap_区间树

    区间树的基本结构是由二叉搜索树演变而来,每个节点代表一个区间,并存储该区间的起始和结束值。每个节点的左子树包含所有起始值小于当前节点的区间,右子树则包含所有起始值大于或等于当前节点的区间。此外,为了...

    使用PhyML构建系统发育树

    因此,系统发育树的构建方法也在不断演变。PhyML作为一个经典的工具,尽管它在某些方面可能不如新的软件那么高效或者功能强大,但它仍然在很多研究中扮演着重要的角色。对于刚入门的研究者来说,PhyML是一个很好的...

    一些树的结构备忘

    6. ISAM数据库系统:ISAM的工作原理,如何使用B树实现索引,以及在现代数据库系统中的演变。 了解这些内容对于提升编程技能、理解和解决实际问题具有重要意义,尤其是在需要高效处理大量数据时。

    人教部编版道德与法治四年级下册《风俗的演变》教学设计.pdf

    1. 风俗的演变:教学设计的核心在于引导学生理解风俗并非一成不变,而是随着社会进步和时代发展而不断演变。风俗的变迁反映了民族历史和国家发展的脉络。 2. 中国传统节日风俗:以春节为例,春节的习俗如放鞭炮等,...

    关于二叉树与树在数据结构中的归属问题.pdf

    由于有序树概念的出现,树的定义得到了拓展,不再局限于传统上对无序树的理解。因此,作者提出了二叉树应被视为有序树的一种特定形式的观点,即每个节点最多拥有两个有序的子节点。如果将有序树作为树的一个子集,...

    进化树分析软件

    4. 参数估计:Mega5可以估计进化树的分支长度、种群大小变化、选择压力等关键参数,为理解生物进化过程提供依据。 5. 分析功能:除了基本的进化树构建,Mega5还包括种群遗传结构分析、同源性检验、系统发育网络构建...

    大树的拼音怎么写的.docx

    “树”字的字源演变体现了汉字的发展历程,从最初的象形符号到现在的楷书形式,反映了古人对自然界的观察和理解。字形对比则展示了不同字体(如篆书、隶书、楷书)中“树”的形态差异。 除了“树”本身,文档中还...

    R树发展介绍

    #### R树家族的演变 自R树被提出以来,针对不同的空间运算和应用场景,研究者们提出了许多R树的变体,形成了一个丰富且复杂的R树家族。这些变体包括但不限于R+树、R*树、Hilbert R树、Grid R树等,每种变体都试图在...

    13家IT巨头标识演变史

    苹果公司的标识起始于1976年,最初的版本描绘了牛顿在苹果树下思考的情景,象征着科学与灵感的结合。然而,这个复杂的标识被乔布斯认为不利于销售,于是委托罗勃·简诺夫设计了著名的彩虹苹果标识。1998年,苹果再次...

    大数据绘制出高分辨率的生物多样性演变历史.zip

    标题中的“大数据绘制出高分辨率的生物多样性演变历史”揭示了一个关键的研究领域,即利用大数据技术来深入理解和解析生物多样性的历史变化。这涉及到多个IT和生物学相关的知识点,包括: 1. **大数据**:大数据是...

    广工人工智能_决策树&一字棋的实现,文档加代码

    5. **游戏树**:构建游戏树来表示所有可能的游戏状态及其演变,AI将遍历这个树以寻找最佳决策。 通过这两个实验,学生不仅可以掌握决策树算法的原理和应用,还能了解到基于搜索的策略游戏AI的设计方法。这些知识...

Global site tag (gtag.js) - Google Analytics