2012-01-22 45 views
2

我有一个大的mysql数据库和两个小磁盘上的centos,我该如何使它利用两个磁盘?跨多个磁盘传播mysql数据

+0

@Fahim Parkar:

如果你用完了你的最后一个分区的磁盘空间,你可以用下面的语句把它分解我不知道它是如何将概念上工作,在/ var/lib中/ MySQL的含所有的数据文件,不知道如何配置它使数据存储在多个文件夹中 – user881480

回答

8

您可以将表分区到多个驱动器上。查看官方手册,其中深入讨论了这一主题。

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" 
);