跨多个磁盘传播mysql数据 [英] spreading mysql data across multiple disks
问题描述
我在centos上有一个大型的mysql数据库和两个小磁盘,如何让它使用这两个磁盘?
I have a large mysql database and two small disks on centos, how do I make the it utilize both disks?
推荐答案
您可以在多个驱动器上分区表。请查看官方手册,深入了解此主题。
You can partition a table over multiple drives. Have a look at the official manual, which covers this subject in depth.
http://dev.mysql.com/doc/refman/5.5/en/partitioning.html
这里是示例将多个驱动器上的现有表分区:
Here's an example to partition an existing table over multiple drives:
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。
Mind that this needs NO_DIR_IN_CREATE to be off. It doesn't seem to work in windows, and it doesn't seem to work with InnoDB.
如果你的磁盘空间你的最后一个分区,你可以拆分它与以下语句:
If you run out of diskspace on your last partition, you can split it with following statement:
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数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!