Bạn có thể phân vùng một bảng trên nhiều ổ đĩa. Hãy xem sách hướng dẫn chính thức bao gồm chuyên sâu về chủ đề này.
http://dev.mysql.com/doc/refman/5.5 /en/partitioning.html
Đây là một ví dụ để phân vùng một bảng hiện có trên nhiều ổ đĩa:
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"
);
Xin lưu ý rằng điều này cần NO_DIR_IN_CREATE để tắt. Nó dường như không hoạt động trong windows và có vẻ như nó không hoạt động với InnoDB.
Nếu bạn hết dung lượng đĩa trên phân vùng cuối cùng của mình, bạn có thể chia nó bằng câu lệnh sau:
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"
);