为什么mysql的数据结构用的是b+而不是b

为什么mysql的数据结构用的是b+而不是b,第1张

mysql的数据结构用的是b+而不是b

红黑树等数据结构也可以用来实现索引,但是文件系统及数据库系统普遍采用B-/+Tree作为索引结构,这一节将结合计算机组成原理相关知识讨论B-/+Tree作为索引的理论基础。

一般来说,索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储的磁盘上。这样的话,索引查找过程中就要产生磁盘I/O消耗,相对于内存存取,I/O存取的消耗要高几个数量级,所以评价一个数据结构作为索引的优劣最重要的指标就是在查找过程中磁盘I/O *** 作次数的渐进复杂度。换句话说,索引的结构组织要尽量减少查找过程中磁盘I/O的存取次数。下面先介绍内存和磁盘存取原理,然后再结合这些原理分析B-/+Tree作为索引的效率。

主存存取原理

目前计算机使用的主存基本都是随机读写存储器(RAM),现代RAM的结构和存取原理比较复杂,这里本文抛却具体差别,抽象出一个十分简单的存取模型来说明RAM的工作原理。

图5

从抽象角度看,主存是一系列的存储单元组成的矩阵,每个存储单元存储固定大小的数据。每个存储单元有唯一的地址,现代主存的编址规则比较复杂,这里将其简化成一个二维地址:通过一个行地址和一个列地址可以唯一定位到一个存储单元。图5展示了一个4 x 4的主存模型。

主存的存取过程如下:

当系统需要读取主存时,则将地址信号放到地址总线上传给主存,主存读到地址信号后,解析信号并定位到指定存储单元,然后将此存储单元数据放到数据总线上,供其它部件读取。

写主存的过程类似,系统将要写入单元地址和数据分别放在地址总线和数据总线上,主存读取两个总线的内容,做相应的写 *** 作。

这里可以看出,主存存取的时间仅与存取次数呈线性关系,因为不存在机械 *** 作,两次存取的数据的“距离”不会对时间有任何影响,例如,先取A0再取A1和先取A0再取D3的时间消耗是一样的。

磁盘存取原理

上文说过,索引一般以文件形式存储在磁盘上,索引检索需要磁盘I/O *** 作。与主存不同,磁盘I/O存在机械运动耗费,因此磁盘I/O的时间消耗是巨大的。

图6是磁盘的整体结构示意图。

图6

一个磁盘由大小相同且同轴的圆形盘片组成,磁盘可以转动(各个磁盘必须同步转动)。在磁盘的一侧有磁头支架,磁头支架固定了一组磁头,每个磁头负责存取一个磁盘的内容。磁头不能转动,但是可以沿磁盘半径方向运动(实际是斜切向运动),每个磁头同一时刻也必须是同轴的,即从正上方向下看,所有磁头任何时候都是重叠的(不过目前已经有多磁头独立技术,可不受此限制)。

1点击电脑左下角圆形的图标“开始”,然后在打开菜单中选择“运行”

2 点击“运行”后,就打开运行对话框,在运行对话框的的输入框中输入cmd,之后点下面的“确定”按钮,打开cmd命令提示符

3在打开的cmd命令提示符中输入下面的命令就可以查看自己的ip地址了

ipconfig /all

方法二

下面这种方式原理和xp系统类型,但是明显 *** 作比xp系统麻烦

点击电脑右下角的表示“网络连接”的图标,之后会打开连接信息对话框,选择“打开网络和共享中心”

在打开的 “打开网络和共享中心”页面中,选择“本地连接”,

在打开的“本地连接 状态”对话框中点击“详细信息”按钮

之后会打开“网络连接详细信息”对话框,在这里我们可以看到除了ip地址之外的更多信息,

这应该是在奥运会期间才会出现的问题,网站为了防止用户发布针对奥运的虚假、诈骗等危害社会治安的信息,所以在网页程序中将用户提交内容中的“奥运”关键字自动替换为************,所以就出现你这个问题了。

过一段时间应该就没问题了吧,等残奥会也结束了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7446051.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存