因为感觉对 B 树的理解不是特别深刻,一直想手撸一个 B 树,这次终于得偿所愿,文末有完整的 B 树代码。 代码比较长,大概六百行。 B 树的代码使用了一百组数据进行 插入/删除 测试,结果正确。 从生产讲,实现一棵 B 树不会有什么实际意义,但是这些代码和构建这些代码的思路,都将成为我们职业素养的一部分。什么是B树 在1970年,Bayer&McCreight发表的论文《ORGANI
转载
2023-06-12 13:05:29
36阅读
转自http://www.cnblogs.com/coder2012/p/3330311.htmlhttp://blog.sina.com.cn/s/blog_6776884e0100ohvr.html这篇在大体上比
转载
2013-11-26 10:24:00
395阅读
2评论
# B-Tree:Java
,那么B树的搜刮机能切近亲
转载
精选
2012-11-14 16:33:28
1365阅读
【摘要】 最近在看Mysql的存储引擎中索引的优化,神马是索引,支持啥索引.全是浮云,目前Mysql的MyISAM和InnoDB都支持B-Tree索引,InnoDB还支持B+Tree索引,Memory还支持Hash.今天从最基础的学起,学习了解BTree,B-Tree和B+Tree。 【主题】 B-
转载
2022-12-14 09:44:16
678阅读
1.(int)'0xff'为什么是0?0xff是字符串 字符串转int 第一个是0 可以转换成功 xff转换失败2. PHP中10进制与16进制互转#10转16dechex(52558);或gmp_strval(52558,16);#16转10hexdec('0xcd4e');3. 通过aux命令查询cup和内存前十的记录ps-aux--sort-pcpu,...
转载
2022-07-23 00:56:51
54阅读
B树B树又叫做B-Tree,和平衡二叉树不同的地方在于B树是多叉树又名平衡多路查找树,Oracle和MongoDB的索引技术就是基于B树的数据结构,B树也可以看作是对2-3查找树的一种扩展。一个m阶的B-Tree有以下性质每个节点最多有m个子节点;每个非叶子节点(根节点除外)至少含有m/2个子节点;如果根节点不是叶子节点,那么根节点至少有两个子节点;每个节点上,所有的关键字都是有序的,从左到右,依
转载
2021-01-31 19:50:10
442阅读
2评论
BTree索引Mysql表结构原则选择较小的数据类型数据类型越小,占用磁盘、内存和CPU缓存更少,处理所需要的CPU周期也更少整型比字符操作代价更低,因为字符集合校对规则使字符比较比整型比较更复杂尽量避免NULL如果查询中包含为null的列,对mysql来说更难优化,因为null的列让索引、索引统计和值更复杂。可以为null的列会使用更多的存储空间,在mysql里需要特殊处理。当可为null的列被
原创
2022-03-24 10:03:43
153阅读
B-tree(多路搜索树,并不是二叉的)是一种常见的数据结构。使用B-tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度。B通常认为是Balance的简称。这个数据结构一般用于数据库的索引,综合效率较高。目前很多数据库产品的索引都是基于B+tree结构。MySQL也采用B+tree,它是B-tree的一个变种,其实特性基本上差不多,理解了B-tree也就懂了B+tr
转载
2018-07-09 23:36:53
8842阅读
前言今天重点说一下B-Tree索引。文中的大部分图都是盗取来的。正文首先简单的介绍一下什么是B-Tree:一种适用于外查找的树,一种平衡的多叉树并且具有以下的特点:(一颗根节点最大为m个关键字的树)1、树中每个节点最多有m个孩子;2、除去根节点和叶子节点外,其他每个节点最少有m/2个孩子
原创
2022-02-21 13:44:17
288阅读
B-Tree就是我们常说的B树,一定不要读成B减树,...
转载
2021-07-13 14:05:16
269阅读
B-Tree就是我们常说的B树,一定不要读成B减树,否则就很丢人了。B树这种数据结构常常用于实现数据库索引,因为它的查找效率比较高。
磁盘IO与预读
磁盘读取依靠的是机械运动,分为寻道时间、旋转延迟、传输时间三个部分,这三个部分耗时相加就是一次磁盘IO的时间,大概9ms左右。这个成本是访问内存的十万倍左右;正是由于磁盘IO是非常昂贵的操作,所以计算机操作系统对此做了优化:预读;每一次
转载
2021-07-31 16:59:57
265阅读
b-tree 索引 该索引意味着所有的值都是按顺序存储的,并且每一个叶子与根的的距离相同 B-Tree索引能够加快访问数据的速度,因为存储引擎不再需要进行全表扫描来获取需要的数据,取而代之的是从索引的根节点开始进行搜索.通过比较节点页的值和要查找的值可以找到合适的指针进入下层子节点,这些指针 ...
转载
2021-08-09 16:34:00
212阅读
B-Tree就是我们常说的B树,一定不要读成B减树,否则就很丢人了。B树这种数据结构常常用于实现数据库索引,因为它的查找效率比较高。
转载
2021-08-13 09:23:06
259阅读
B-Tree就是我们常说的B树,一定不要读成B减树,否则就很丢人了。B树这种数据结构常常用于实现数据库索引,因为它的查找效率比较高。 磁盘IO与预读 磁盘读取依靠的是机械运动,分为寻道时间、旋转延迟、传输时间三个部分,这三个部分耗时相加就是一次磁盘IO的时间,大概9ms左右。这个成本是访问内存的十万
转载
2020-01-06 17:39:00
176阅读
2评论
二叉查找树: 特性:左子树的键值小于根的键值,右子树的键值大于根的键值,下图是一个二叉查找树 对该二叉树进行查找发现深度为1的节点查找次数是1,深度为2的查找次数为2,查找为n的节点查找次数为n,因此平均查找次数为(1+2+2+3+3+3)/6=2.3次。 二叉树可以任意的构造,同样是2,3,5,6 ...
转载
2021-09-17 13:13:00
212阅读
2评论
看了很多关于索引的博客,讲的大同小异。但是始终没有让我明白关于索引的一些概念,如B Tree索引,Hash索引,唯一索引....或许有很多人和我一样,没搞清楚概念就开始研究B Tree,B+Tree等结构,导致在面试的时候答非所问!本文中有关存储引擎请查看MySQL存储引擎 InnoDB和MyISA
转载
2019-10-22 10:42:00
342阅读
2评论
索引是帮助MySQL高效获取数据的数据结构
转载
2021-06-22 16:50:10
140阅读