Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 数据库如何在文件系统上物理存储数据?_Mysql_Sql_Sql Server_Database_Filesystems - Fatal编程技术网

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

Mysql 数据库如何在文件系统上物理存储数据?,mysql,sql,sql-server,database,filesystems,Mysql,Sql,Sql Server,Database,Filesystems,我需要知道数据库中的数据是如何存储在文件系统中的。我确信,不同的数据库使用不同的方式存储数据,但我想知道一般规则是什么(如果有),以及在特定数据库的设置中可以更改什么 整个数据库是如何存储的?一个大文件还是每个表一个文件 如果一张桌子很大怎么办?它会被分成几个文件吗 在这种情况下,文件的典型大小是多少 这个问题的答案取决于数据库和实现。以下是一些如何存储数据的示例: 作为每个数据库的单个文件。(这是SQL Server的默认设置。) 使用单独的文件系统管理器,可以是操作系统。(MySQL有几个

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

  • 整个数据库是如何存储的?一个大文件还是每个表一个文件
  • 如果一张桌子很大怎么办?它会被分成几个文件吗
  • 在这种情况下,文件的典型大小是多少

  • 这个问题的答案取决于数据库和实现。以下是一些如何存储数据的示例:

    • 作为每个数据库的单个文件。(这是SQL Server的默认设置。)
    • 使用单独的文件系统管理器,可以是操作系统。(MySQL有几个选项,名称像InnoDB。)

    • 为每个表使用单独的文件。(如果我们考虑访问数据库)
    • 作为多个物理文件,分布在多个文件系统中,但表示为单个“文件”。(例如,使用并行文件系统存储数据的配置单元。)
    但是,这些是默认配置。真实数据库通常允许您在多个物理设备之间分割数据。SQL Server和MySQL称此分区。Oracle将此表称为表空间。这些通常由了解系统性能要求的知识渊博的DBA设置


    不过,最后的问题很容易回答。大多数数据库都允许您选择根据需要增加数据库,或者为数据库提供固定(或固定最大)大小。我还没有遇到一个数据库引擎,它会自动将基础数据分割成多个文件,尽管可能有新的面向列的数据库(例如Vista)做类似的事情。

    “为每个表使用单独的文件。(如果我们考虑访问一个数据库。)Access对每个表没有一个单独的文件,dBASE是这样做的。Access不是也从来不是一个数据库,它通常使用ACE或Jet数据库,这两者都是一个非常好的基于文件的数据库。“一个文件”能有多大?@Gyuhyonchoi。这取决于操作系统。@GordonLinoff你能检查一下我的问题吗?