B +树CPU搜索时间

时间:2012-03-22 16:16:49

标签: database database-design

我只是想知道你如何计算非聚集和聚集的b +树的最坏情况时间?

例如,假设我有1,000,000条记录(1行= 100字节),磁盘页面为4000字节,密钥为20字节,页面访问时间为40毫秒。我如何使用这些变量计算非聚集和聚集的b +树更坏的情况时间?

我知道要计算b +树的高度/等级你使用以下(我认为):

logF(keys)

其中F =分支数量。

有了身高,你可以用它来计算最后的最坏情况时间,但我不知道该怎么做...我已经尝试过四处寻找,但是对于一般情况或例子我都可以那不是很清楚。

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

我会说logF(键)是查找页面的最坏情况,但在此之后最糟糕的情况是一个未被删除的索引,所有的rid指向不同的页面,这意味着

logF(keys)+ N是索引节点中的rids数。

所以最终会是

H =树的高度,如3或4。

H + N = 4 +(4000/20)= 204 I / O

让我们说它们在内存中并希望看到CPU时间然后就会

CPU = 204 * 0.04 = 8.16秒。虽然在内存中移动页面需要40毫秒,但我认为(对于磁盘读取可能有意义),但我觉得计算很好。