【问题标题】:Blocking factor in a DBMSDBMS 中的阻塞因子
【发布时间】:2013-03-29 08:27:45
【问题描述】:

什么是 DBMS 中的阻塞因素,

我看到的是每条记录的块的下限值(所以 B/R 下限),其中 B 是块大小,R 是记录。我只是想知道,谁能告诉我它使用的主要原因,以及它是否真的是 FLOORED?

对于任何想知道的人来说,我对 FLOORED 的理解是 1.5 到 1.0。

【问题讨论】:

  • 大家好,阻塞因子是每条记录的块数,而不是每块的记录数。 (例如:gnu.org/software/tar/manual/html_section/tar_77.html)。公式应该是 R/B,而不是 B/R。如果记录大小小于 1 个块,则分块因子为
  • @pioneer78,这是一个不同的阻塞因素。这个问题与磁带驱动器无关。
  • 很高兴知道。谢谢。

标签: database indexing


【解决方案1】:

Yes, it means how many whole records fit into a block.

(块是底层存储系统(hdd、san fs 等)愿意处理的最小数据单位。它的大小传统上是硬盘驱动器的 512 字节。)

因为如果 100 条半记录适合,那么每个块只能存储 100 条记录。

阻塞因子在许多与 dbms 相关的计算中被大量使用。

例如:

问题

我们有 10 000 000 条记录。 每条记录长 80 字节。 每条记录都包含一个唯一的密钥(假设是社会安全号码)。 我们希望通过社会安全号码快速查找某人。

但什么是快?

我们需要一些东西来衡量性能。 花费最多时间的事情是从硬盘请求一个块。 你知道,它是一种机械装置。它必须重新定位它的头,然后blabla, 所以与 CPU 的速度相比,这确实是一个缓慢的操作, 或与操作内存 (RAM) 访问的速度相比。 好的,假设我们通过它需要多少磁盘访问来衡量操作的性能。我们希望尽量减少磁盘访问次数。 好的,现在我们知道如何判断某事是慢还是快。

许多磁盘访问 -> 错误

很少的磁盘访问 -> 好

计算我们的数据需要多少块

假设在我们想象的硬件上,每个块是 5000 字节。我们要计算我们需要多少块。首先,我们需要知道一个块中有多少条记录:

Blocking factor = floored((Block size)/(Record size)) = floored(5000/80) = floored(62.5) = 62 record/block

我们有 10000000 条记录,所以我们需要ceiled(10000000/62)=ceiled(161290.32)=161291 块来存储所有这些数据。

哇,这是很多数据。如何快速查找某人?

如果要读取所有块以通过键(社会保险号)找到一条记录,那么这将需要 161291 次磁盘访问。不好。

我们可以做得更好。让我们建立一个索引文件。我们将建立一个sparse index

数据库中的稀疏索引是具有键和指针对的文件 对于数据文件中的每个块。此文件中的每个键都关联 带有指向已排序数据文件中块的特定指针。在 具有重复键的聚集索引,稀疏索引指向 每个块中的最低搜索键。

好的,所以我们将在索引文件中为每个块创建一个指针和一个键。 假设在我们想象的硬件上,一个指针有 4 个字节长,而在我们想象的世界中,一个社会安全号码(密钥)占用 6 个字节。

因此,我们将为索引中的每个块存储一个 10 字节长的键指针对。 这些对中有多少对适合单个块?

Blocking factor of the index file = floored(5000/10) = 500

...所以这意味着 500 个关键指针对适合单个块。我们需要存储其中的 161291 个,因此索引文件将占用 ceiled(161291/500)=323 个块

索引文件是按key排序的,所以我们可以在里面进行二分查找,找到指向包含记录的块的指针。在索引文件中执行二进制搜索最多花费ceiled(log2(323))=9 磁盘访问。我们还需要+1磁盘访问才能真正读取索引记录指向的数据块。

哇,我们的查找可以在 10 次磁盘访问中工作。这真是太棒了。我们甚至可以做得更好。 :)

好的,所以你可以看到阻塞因子在这个计算中被大量使用。

【讨论】:

    猜你喜欢
    • 2023-03-30
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 2014-03-23
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多