将MySQL数据分散到多个磁盘上

4

我有一个大的mysql数据库和两个小的centos硬盘,如何让它利用两个硬盘?


@Fahim Parkar:我不确定在概念上它如何工作,/var/lib/mysql包含所有数据文件,不确定如何配置它以跨多个文件夹存储数据。 - user881480
1个回答

9
您可以将一个表分区到多个驱动器上。请查看官方手册,该手册对此进行了深入讲解。 http://dev.mysql.com/doc/refman/5.5/en/partitioning.html 下面是一个示例,展示如何将现有的表分区到多个驱动器上:
ALTER TABLE mytable
    PARTITION BY RANGE (mycolumn)(
     PARTITION p01 VALUES Less Than (10000)
       DATA DIRECTORY = "/mnt/disk1"
       INDEX DIRECTORY = "/mnt/disk1",
     PARTITION p02 VALUES Less Than (20000)
       DATA DIRECTORY = "/mnt/disk2"
       INDEX DIRECTORY = "/mnt/disk2",
     PARTITION p03 VALUES Less Than MAXVALUE
       DATA DIRECTORY = "/mnt/disk3"
       INDEX DIRECTORY = "/mnt/disk3"
    );

请注意,这需要将NO_DIR_IN_CREATE关闭。它似乎在Windows上不起作用,并且在InnoDB上似乎也不起作用。
如果您的最后一个分区磁盘空间不足,您可以使用以下语句进行分割:
ALTER TABLE mytable REORGANIZE PARTITION p03 INTO 
( 
    PARTITION p03 VALUES Less Than (30000)
       DATA DIRECTORY = "/mnt/disk3"
       INDEX DIRECTORY = "/mnt/disk3",
     PARTITION p04 VALUES Less Than MAXVALUE
       DATA DIRECTORY = "/mnt/disk4"
       INDEX DIRECTORY = "/mnt/disk4"
);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接