2012-01-22 10 views
2

私は大規模なmysqlデータベースと2つの小さなディスクをcentos上に持っていますが、どのように両方のディスクを利用するのですか?複数のディスクにmysqlデータを広げる

+0

@Fahimパーカー:私はそれは概念的にどのように動作するかわからない、の/ 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" 
); 
関連する問題