0

在用于 IO 密集型数据库或通常用于 VLDB 的 SQL Server 中,我们创建多个数据库文件并将它们放在单独的磁盘/Lun 上,以分散 IO 工作负载。

我看不出这如何使用 mySQL 实现,因为默认情况下,所有数据库都是在实例目录中创建的,无法选择将它们放在其他位置或创建多个文件。我错过了什么?

4

1 回答 1

0

大多数人使用 RAID 来分散 IO 工作负载。

如果您确实需要,您可以使每个数据库的子目录成为指向另一个磁盘卷的符号链接。但这通常不是必需的。

您还可以将重做日志、二进制日志和查询日志移动到数据目录之外的另一个目录。这些文件的 IO 使用率相当高,因此这可以成为平衡 IO 负载的一种方式。


回复您的评论:

MySQL 没有该名称的“文件组”选项。但是您可以将给定的表移动到它自己的数据库中。MySQL 上的数据库非常简单,可以将它们简单地视为表的命名空间。访问多个数据库不需要单独登录,只需限定查询中的表名。

如果您希望给定的数据库在 Windows 上拥有自己的物理磁盘,我会使用 Windows 磁盘管理器将磁盘安装到空目录而不是不同的驱动器号。因此,您可以将 MySQL 数据目录下的一个子目录映射到专用物理磁盘。因此,该子目录下的数据和索引文件将位于它们自己的磁盘上。

MySQL 在特定于数据库的子目录之外管理一些数据文件。例如,日志,以及中央 InnoDB 表空间(即使您配置了 innodb_file_per_table,这也很重要)。其中每一个都允许您指定路径,以便您可以在文件系统的任何位置找到它们。但是您不能将他们的每个表或每个数据库的写入分开。

MySQL 是与 Microsoft SQL Server(或 Oracle 等)不同的产品,您不应期望 SQL Server 的每个功能都与 MySQL 直接类似。

于 2014-07-25T15:52:29.157 回答