我需要在不同的分区上存储两个Innodb数据库文件.(raid0上有一个数据库用于速度,另一个数据库用于raid1以获得稳定性)
根据我的阅读,实现这一目标的唯一方法是使用innodb_file_per_table和符号化.ibd和.frm文件,无论它们可能存在于已配置的mysql存储目录(我系统上的/ var/lib/mysql),其中ibdata1文件必须存在(对于表元数据).
这是完成拆分的唯一方法吗?
是否有与myisam的TABLE/INDEX DIRECTORY类似的innodb?
只是为了更新这篇文章,如果有人遇到这个,InnoDB现在支持自5.6版以来的数据目录.没有符号链接(不推荐),适用于*nix和Windows.
要求:
innodb_file_per_table = 1
场景1(创建新表):
它就像在创建表时指定DATA DIRECTORY选项一样简单.
CREATE TABLE t1 (c1 INT PRIMARY KEY) DATA DIRECTORY = '/alternative/directory';场景2(将现有表移动到单独的磁盘):
这涉及更多步骤(需要重启MySQL服务器),但仍然非常直接.并且它不要求表在表创建期间指定DATA DIRECTORY选项.
/alternative/directory/table_name.ibd现在,对移动表的后续更改将保存到新路径中的.ibd文件中.
有关参考,请参阅MySQL官方文档:http://dev.mysql.com/doc/refman/5.6/en/tablespace-placing.html
我今天刚刚写了一篇关于此的博客文章: http ://www.mysqlperformanceblog.com/2010/12/25/spreading-ibd-files-across-multiple-disks-the-optimization-that-isnt/
你不想做符号链接的事情 - 并且 InnoDB 不支持数据目录/索引目录。
对于 InnoDB,您实际上需要整个数据系统的稳定性。比方说——
如果您有两种截然不同的数据需求,则需要安装两次 MySQL ;)