我需要在不同的分区上存储两个 Innodb 数据库文件。 (一个数据库在 raid0 上以提高速度,另一个在 raid1 上以确保稳定性)

从我读过的内容来看,完成此操作的唯一方法是使用 innodb_file_per_table 并将 .ibd 和 .frm 文件符号链接(symbolic link)到已配置的 mysql 存储目录(我系统上的/var/lib/mysql), ibdata1 文件必须存在的位置(对于表元数据)。

这是完成拆分的唯一方法吗?

是否有类似于 myisam 的 TABLE/INDEX DIRECTORY 的 innodb 模拟?

最佳答案

我今天刚刚写了一篇关于这个的博客文章:
http://www.mysqlperformanceblog.com/2010/12/25/spreading-ibd-files-across-multiple-disks-the-optimization-that-isnt/

你不想做符号链接(symbolic link)的事情 - InnoDB 不支持数据目录/索引目录。

您实际上需要 InnoDB 数据系统范围内的稳定性。让我们说 -

  • 您有关键表 A、B、C。
  • 非关键表为 D、E、F。
  • 如果您将 D、E、F 重定位到/mnt/RAID0,并且您丢失了该卷,则 InnoDB 实际上也不允许您再访问表 A、B、C。
  • 除非它可以访问你的所有数据,否则 InnoDB 将拒绝启动。

  • 如果你有两个截然不同的数据需求,你需要安装两个 MySQL ;)

    关于mysql - 创诺达;多个数据目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4511578/

    10-11 03:10
    查看更多