跨多个磁盘传播mysql数据 [英] spreading mysql data across multiple disks

查看:216
本文介绍了跨多个磁盘传播mysql数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆