数据库如何在文件系统上物理存储数据?

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

我需要知道数据库中的数据如何存储在文件系统上。我敢肯定,不同的数据库使用不同的数据存储方式,但是我想知道什么是通用规则(如果有),以及可以在特定数据库的设置中更改的内容。

  1. 整个数据库如何存储?每个表一个大文件还是一个文件?
  2. 如果一张桌子很大,该怎么办?它将分成几个文件吗?
  3. 在这种情况下,文件的典型大小是多少?
mysql sql sql-server database filesystems
1个回答
13
投票

此问题的答案均​​取决于数据库实现。以下是一些如何存储数据的示例:

  • 作为每个数据库的单个文件。 (这是SQL Server的默认设置。)
  • 使用单独的文件系统管理器,可以是操作系统。 (MySQL有几个选项,名称类似于InnoDB。)
  • 为每个表使用单独的文件。 (如果我们考虑访问数据库。)
  • 作为多个物理文件,分布在多个文件系统中,但是表示为单个“文件”。 (例如,HIVE使用并行文件系统来存储数据。)

但是,这些是默认配置。实际数据库通常使您可以在多个物理设备之间拆分数据。 SQL Server和MySQL将此分区称为。 Oracle将此表空间称为。这些通常是由了解系统性能要求的知识渊博的DBA设置的。

尽管最后一个问题很容易回答。大多数数据库使您可以选择根据需要扩展数据库,也可以为数据库提供固定(或固定的最大)大小。我还没有遇到可以将基础数据自动拆分为多个文件的数据库引擎,尽管较新的面向列的数据库(例如Vertica)可能会执行类似的操作。

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