在MySQL、MyISAM中,是否可以将带分区的表更改为多个硬盘?
我的硬盘驱动器的磁盘空间即将耗尽。
有人遇到这个问题吗?你是如何解决的?
最佳答案
是的,可以将表分区到多个驱动器上。查看官方手册,其中深入介绍了这个主题。
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"
);
关于mysql - 在MySQL,MyISAM中,是否可以将带有分区的表更改为多个硬盘驱动器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7562747/