文件组织存储17 Mar 2025 | 4 分钟阅读 数据库中存储数据的方式有多种。文件存储是其中一种。用户可以以有组织的方式将数据存储在文件中。这些文件在逻辑上被组织成一系列记录,并永久存储在磁盘上。每个文件被划分为固定长度的存储单元,称为 **块 (Blocks)**。这些块是存储分配和数据传输的单元。尽管数据库的默认块大小为 4 到 8 千字节,但许多数据库允许在创建数据库实例时指定大小。 通常,记录大小小于块大小。但是,对于图像等大型数据项,大小可能会有所不同。为了快速访问数据,要求一条完整的记录只驻留在同一个块中。它不应被部分地分割到一两个块中。在 RDBMS 中,不同关系中元组的大小是不同的。因此,我们需要结构化我们的文件以实现多长度记录。在文件组织中,表示记录有两种可能的方式。
让我们详细讨论一下。 固定长度记录固定长度记录意味着设置一个长度并将记录存储到文件中。如果记录大小超过固定大小,它将被分割成多个块。由于固定大小,会出现以下两个问题:
但是,包含一定数量的字节是解决上述问题的方案。这被称为 **文件头 (File Header)**。分配的文件头包含有关文件的各种信息,例如第一条记录的地址。第二条记录的地址存储在第一条记录中,依此类推。此过程类似于指针。固定长度记录中的插入和删除方法很容易,因为被删除记录留下的或释放的空间与插入新记录所需空间完全相同。但这对于存储可变长度的记录会失败。 可变长度记录可变长度记录是大小可变的记录。它需要创建多个不同大小的块来存储它们。这些可变长度记录在数据库系统中以以下方式保存:
在可变长度记录中,存在以下两个问题:
因此,可变长度记录的表示可以分为两部分:
带槽页结构在块内存储可变长度记录时会遇到一个问题。因此,此类记录在块内的带槽页结构中进行组织。在带槽页结构中,每个块的开头都有一个头。这个头包含信息,例如:
![]() 插入和删除方法 可变长度记录在块内以连续的方式驻留。 当要插入新记录时,它会被放置在可用空间的末尾。这是因为可用空间也是连续的。此外,头会填充一个条目,其中包含新插入记录的大小和位置信息。 当现有记录被删除时,空间被释放,头条目被设置为已删除。删除之前,它会移动记录并占用空间以创建可用空间。可用空间末尾会更新。然后所有可用空间会重新设置在第一条记录和最后一个条目之间。 带槽页结构的主要技术是,不应有任何指针直接指向记录。相反,它应该指向包含其位置信息的头条目。这可以防止块内的空间碎片化,但支持指向记录的间接指针。 下一个主题RAID 级别选择 |
我们请求您订阅我们的新闻通讯以获取最新更新。