MariaDB 中的文件组
FileGroup in MariaDB
在SQL服务器中分区有循环
Table -> 分区模式 -> 文件组 (f1,f2,f3,f4,....)
例如在 Oracle 中:
SQL服务器中的文件组类似于Oracle中的table空间,是table和索引数据的逻辑存储,可以包含一个或多个OS 个文件。
但是 MariaDB 有文件组吗?
并非如此。你想达到什么目的?请记住,存在一些类似的东西是因为磁盘过去比数据库小。今天,很少有问题。此外,RAID 控制器、SAN 等消除了手动决定文件去向的需要(甚至不需要)。 OS 有连接多个卷的方法,即使是在运行中。等等
MyISAM 有能力说出数据的去向和索引文件的去向。但是 MyISAM 几乎死了。即使在那里,将数据放在一个驱动器上而将索引放在另一个驱动器上也是愚蠢的。在执行查询时,首先访问索引,然后访问数据。如果获得任何性能,那是很少的。简单的 RAID 条带化可能会做得更好。
InnoDB 有办法拼出 ibdata1、ibdata2 等。这可以追溯到 OS 无法生成大于 2GB 或 4GB 的文件的时代。它今天基本上从未使用过。
InnoDB tables 可以全部在 ibdata1 中,也可以分散在各个 .ibd 文件中。但我真的不认为这就是你在说的。使用此 "file per table",微小的 table 存储效率低下。 MySQL 8.0 将略微改进,允许您在给定的 "tablespace" 中放置多个 table,类似于 .ibd 文件。
InnoDB table 空间包含给定 table 或一组 table 的所有数据 和 索引。分区 tables,当 file_per_table 时,每个分区都位于不同的 .ibd 文件中。这可能会随着 8.0 发生变化。
所有这些几乎都不值得一提。我猜想只有 1% 的系统需要考虑它。干脆让MySQL/MariaDB为所欲为;够用了。
一个相关的事情...在 80 年代和 90 年代,一些供应商拥有 "raw device" 访问权限,因为他们认为他们可以比通过 OS 做得更好。同样,OS 已经改进,RAID 控制器很复杂,并且存在 SAN。所以原始不再重要。 (我不认为MySQL曾经有过它。)这对供应商来说肯定是一个很大的开发和维护问题。
有多少 DBA 将 tmpdir
放在单独的分区中,却发现因为分区不够大而崩溃。 RAM 磁盘也是如此。
在SQL服务器中分区有循环 Table -> 分区模式 -> 文件组 (f1,f2,f3,f4,....)
例如在 Oracle 中:
SQL服务器中的文件组类似于Oracle中的table空间,是table和索引数据的逻辑存储,可以包含一个或多个OS 个文件。
但是 MariaDB 有文件组吗?
并非如此。你想达到什么目的?请记住,存在一些类似的东西是因为磁盘过去比数据库小。今天,很少有问题。此外,RAID 控制器、SAN 等消除了手动决定文件去向的需要(甚至不需要)。 OS 有连接多个卷的方法,即使是在运行中。等等
MyISAM 有能力说出数据的去向和索引文件的去向。但是 MyISAM 几乎死了。即使在那里,将数据放在一个驱动器上而将索引放在另一个驱动器上也是愚蠢的。在执行查询时,首先访问索引,然后访问数据。如果获得任何性能,那是很少的。简单的 RAID 条带化可能会做得更好。
InnoDB 有办法拼出 ibdata1、ibdata2 等。这可以追溯到 OS 无法生成大于 2GB 或 4GB 的文件的时代。它今天基本上从未使用过。
InnoDB tables 可以全部在 ibdata1 中,也可以分散在各个 .ibd 文件中。但我真的不认为这就是你在说的。使用此 "file per table",微小的 table 存储效率低下。 MySQL 8.0 将略微改进,允许您在给定的 "tablespace" 中放置多个 table,类似于 .ibd 文件。
InnoDB table 空间包含给定 table 或一组 table 的所有数据 和 索引。分区 tables,当 file_per_table 时,每个分区都位于不同的 .ibd 文件中。这可能会随着 8.0 发生变化。
所有这些几乎都不值得一提。我猜想只有 1% 的系统需要考虑它。干脆让MySQL/MariaDB为所欲为;够用了。
一个相关的事情...在 80 年代和 90 年代,一些供应商拥有 "raw device" 访问权限,因为他们认为他们可以比通过 OS 做得更好。同样,OS 已经改进,RAID 控制器很复杂,并且存在 SAN。所以原始不再重要。 (我不认为MySQL曾经有过它。)这对供应商来说肯定是一个很大的开发和维护问题。
有多少 DBA 将 tmpdir
放在单独的分区中,却发现因为分区不够大而崩溃。 RAM 磁盘也是如此。