需要B树盘读取要求说明

问题描述 投票:1回答:1

它说,在维基百科B-tree的“搜索已排序文件的时间”部分

每个块有100个记录,最后6个左右的比较不需要进行任何磁盘读取 - 比较都在最后一个磁盘块读取范围内。

https://en.wikipedia.org/wiki/B-tree#Time_to_search_a_sorted_file

问题:在20个比较中,为什么最后6个左右的比较不需要任何磁盘读取?

algorithm b-tree
1个回答
2
投票

最后的6次比较都是针对读入内存的最后100个记录块进行的:2 ^ 6 = 64,而64 <100。

B树:每次查找都会将之前的查找空间减少一半(参见“分而治之”)。当域已减少到该级别时,所有数据“物理上非常接近”。在此示例中,它位于已经读入内存的单个连续100条记录块中,从而避免了额外的IO读取。

之前的(14)比较很可能必须读取不同的记录/记录块 - 不包括缓存 - 会导致IO读取。

© www.soinside.com 2019 - 2024. All rights reserved.