📜  关系查询评估 | 2套

📅  最后修改于: 2021-09-10 02:16:11             🧑  作者: Mango

先决条件 – 关系查询评估 |设置 1
数据存储在磁盘中。然后使用读写方法操作磁盘。更多数量的操作,更少数量的磁盘将失败。为了克服这个问题并延长磁盘的使用寿命,我们希望通过确保最大限度地减少使用磁盘的读写操作来优化所使用的磁盘。

  1. 投影操作——
    此操作涉及从记录中选择属性。这种操作是昂贵的。为了进行投影操作,需要扫描文件中的每条记录以形成结果记录。需要使用排序或基于散列的函数消除结果记录中的重复记录。在使用投影操作的情况下,必须进行整个文件扫描。一种成本友好的方法将涉及仅在选择操作之后使用投影操作。这是因为选择完成后会有更少的记录,然后可以进行投影操作,涉及更少的成本、更少的读写操作和更长的磁盘寿命。
  2. 排序 –
    排序是非常常用的操作。它用于删除重复元素、记录分组、连接等。外部排序涉及磁盘上存在的巨大文件。我们可以按记录的升序或降序排列文件。我们对这些操作使用归并排序。归并排序涉及两个阶段,即排序阶段和归并阶段。排序阶段的使用是在创建已排序的子文件中很普遍。这些排序的子文件也称为运行。合并阶段以合并子文件以最终创建一个排序文件而闻名。

假设 :
假设数据非常庞大,它存储在 n 个块中,并且内存(m 个块)比数据小得多。接下来将涉及的步骤是读取 m 个块,在内存中对其进行排序,然后将其作为名为 run 的单个文件写入磁盘。
这些步骤要重复——

(n / m) number of times 

只要值不是整数,就取上限值。

复杂性:

(2*n) times block access

我们可以说已经创建了“r”个子文件,每个子文件都被排序。缓冲区空间只有 m 个块,我们一次只能对 m 个块进行操作。然后,将操作的部分移动到内存并在下一个块上操作(一次最多 m 个块)。