从哪些方面进行网站建设名聚优品一家只做正品的网站
2026/4/18 9:14:28 网站建设 项目流程
从哪些方面进行网站建设,名聚优品一家只做正品的网站,网站响应式是什么意思,巴中免费网站建设b-tree 其中b代表“balanced”#xff08;平衡#xff09;。我们使用磁盘时#xff0c;主要瓶颈在于磁盘i/o。磁盘读取数据是按块#xff08;block#xff09;进行的#xff0c;通常一个块的大小是4kb。如果我们用传统的二叉树#xff08;比如二叉搜索树#xff09;来存…b-tree其中b代表“balanced”平衡。我们使用磁盘时主要瓶颈在于磁盘i/o。磁盘读取数据是按块block进行的通常一个块的大小是4kb。如果我们用传统的二叉树比如二叉搜索树来存储大量数据每个节点只存储一个键和两个指针那么依次磁盘i/o只能读取一个节点树的高度会很高导致需要多次磁盘i/o。 b树的设计就是为了减少磁盘i/o次数。它的一个几点可以存储多个键和多个子节点指针这样一次磁盘i/o可以读取一个节点包含多个键和多个指针然后在这个节点内部进行内存中快速查找从而减少树的高度和磁盘i/o次数。 通俗来说b树是一种多路搜索树每个节点有多个子节点。它通过以下方式工作 1、节点可以包含多个键这些键将数据划分成多个区间每个区间对应一个子节点。 2、所有叶子节点都在同一层这样保证了树的平衡即从根到叶子节点的路径长度相同。 在磁盘上b树的一个节点通常设计成刚好一个磁盘块或几个块的大小这样一次磁盘读取就可以把一个节点的所有数据读入内存。节点内部存储的键和指针的数量根据节点的大小和键、指针的大小来计算。 例如假设一个磁盘块是4kb一个键是4字节一个指针式8字节那么一个几点最多可以存储的键的数量n满足4n8(n1)4096这里假设节点结构为n个键n个指针。解这个不等式得到n大约为340.也就是说一个几点可以有340个键和341个指针。这样一颗三层高的b树可以存储的数据量大约是根节点有340个键第二层有341个节点每个节点有340个键第三层叶子节点有341*341个节点每个几点有340个键总共大约340*341*340≈三千九百万个键。而只需要3次磁盘i/o根节点、第二层某个节点、叶子节点就可以找到任何一个键。 这就是b树在磁盘上高效地原因通过增加每个节点的分支树降低树的高度从而减少磁盘i/o次数。b-tree比喻b树的工作方式比如索引查找 1、读书馆门口有个总目录根节点“A-L在1楼M-Z在2楼” 2、到1楼看到分目录“A-C在1-10架D-F在11-20架” 3、到具体书架看到“D开头的在1-5排E开头在6-10排” 4、最后在一排书种快速找到你想要的那本。磁盘的特性磁盘的工作原理机械硬盘 1、磁头需要移动到正确的磁道。此过程称为寻道seek在整个数据读取过程中占用时间较多。平均寻道时间统称为几毫秒。例如3-15ms 2、等待盘片旋转到正确位置。此过程称为旋转等待rotational latency这个时间称为旋转等待时间取决于磁盘转速。例如对于7200 RPM的从盘旋转一周的时间为60/72008.33ms平均旋转等待时间为半周即4.17ms。 3、当目标山区转到磁头下方是开始读取数据。数据传输时间取决于数据量和磁盘的数据传输速率。例如假设数据传输速率为100mb/s读取一个扇区512b的时间约为0.005ms。 磁盘的概念 1、基本结构 盘片platter一个而硬盘通常包含一个或多个盘片每个盘片有两个表面上下通常每个表面都会用来存储数据。盘片由硬质材料制成表面涂有磁性材料。 磁头head每个表面都有一个磁头用于读写数据。磁头安装在磁头臂上可以沿着盘片半径方向移动。 主轴spindle盘片固定在主轴上有电机带动旋转。 2、数据组织方式 磁道track当盘片旋转时磁头在盘片表面画出的原型路径称为磁道。每个盘片表面有成千上万个通信磁道。 柱面cylinder不同盘片上相同半径的磁道组成一个柱面。柱面的数量等于每个盘面的磁道数。使用柱面可以避免磁头移动因为同一柱面上的并不同盘面的数据可以通过切换磁头来读取而不需要移动磁头臂。 扇区sector每个磁道被划分成多个扇区每个扇区通常存储512字节现代硬盘可能使用4kb扇区。扇区是磁盘读写的最小单位。 3、寻址方式 chs寻址cylinder-head-sector早期使用通过柱面号、磁头号、扇区号来定位数据。 LBA寻址logical block addressing现代磁盘使用将整个磁盘的扇区从0开始编号操作系统通过逻辑块地址一个整数来指定扇区。 B树比二叉树的优点 读取1字节和4kb时间差不多就一次夺取一个块一个块里面尽可能的多放数据。b-tree工作步骤1、查找过程从根节点开始查找在这个节点内快速查找例如要找到35比40大比25小——走25-40之间的路。再继续去而二层节点内快速查找直到找到返回数据。如果走到了叶子节点还没找到则判断为数据不存在。2、插入过程1、当块中还有空位时直接插入并保持有序 2、当数据块中无空位时需要分裂。 把块中所有内容以及新数据排序找到中间位置分成两个数据块把中间键返回给父节点。如果父节点也满了继续向上分裂。这可能一直传递到根节点导致树长高了一层。3、删除过程找到要删除的键如果是叶子节点直接删除检查是否数据块内存储内容太少少于半满如果太少需要向邻居借如果做邻居的块大于半满就向左邻居借一个如果右邻居的块大于半满就向右邻居借一个如果左右两边都“穷”合并节点。b-tree图示

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询