mysql 分区指定分区表数据存储路径,可以支持跨磁盘

mysql 分区指定分区表数据存储路径,可以支持跨磁盘,第1张

INNODB引擎只支持DATA DIRECTORY,不支持INDEX DIRECTORY, 另外 目录要空目录权限归属mysql 组mysql 用户,命令

mkdir /data

chown mysql:mysql /data

主键必须包含分区字段,PRIMARY KEY (id,store_id)

CREATE TABLE orders_list2 (

  id INT AUTO_INCREMENT,

  customer_surname VARCHAR(30),

  store_id INT,

  salesperson_id INT,

  order_date DATE,

  note VARCHAR(500),

  PRIMARY KEY (id,store_id),

  INDEX idx (id)

) ENGINE = INNODB

  PARTITION BY LIST(store_id) (

  PARTITION p1

  VALUES IN (1, 3, 4, 17)

  DATA DIRECTORY = '/data/p1',

  PARTITION p2

  VALUES IN (2, 12, 14)

  DATA DIRECTORY = '/data/p2',

  PARTITION p3

  VALUES IN (6, 8, 20)

  DATA DIRECTORY = '/data/p3',

  PARTITION p4

  VALUES IN (5, 7, 9, 11, 16)

  DATA DIRECTORY = '/data/p4',

  PARTITION p5

  VALUES IN (10, 13, 15, 18)

  DATA DIRECTORY = '/data/p5'

)

分区表扩充

ALTER TABLE orders_list2  ADD PARTITION (PARTITION p6 VALUES IN  (21,22,23)

DATA DIRECTORY = '/var/lib/mysql/monitor/orders/p6' 

子分区

CREATE TABLE tb_sub_dir (id INT, purchased DATE)

ENGINE='MYISAM'

    PARTITION BY RANGE( YEAR(purchased) )

    SUBPARTITION BY HASH( TO_DAYS(purchased) ) (

        PARTITION p0 VALUES LESS THAN (1990) 

        (

            SUBPARTITION s0

                DATA DIRECTORY = '/data/data_sub1'

                INDEX DIRECTORY = '/data/idx_sub1',

            SUBPARTITION s1

                DATA DIRECTORY = '/data/data_sub1'

                INDEX DIRECTORY = '/data/idx_sub1'

        ),

        PARTITION p1 VALUES LESS THAN (2000) 

        (

            SUBPARTITION s2

                DATA DIRECTORY = '/data/data_sub2'

                INDEX DIRECTORY = '/data/idx_sub2',

            SUBPARTITION s3

                DATA DIRECTORY = '/data/data_sub2'

                INDEX DIRECTORY = '/data/idx_sub2'

        ),

        PARTITION p2 VALUES LESS THAN MAXVALUE 

        (

            SUBPARTITION s4

                DATA DIRECTORY = '/data/data_sub3'

                INDEX DIRECTORY = '/data/idx_sub3',

            SUBPARTITION s5

                DATA DIRECTORY = '/data/data_sub3'

                INDEX DIRECTORY = '/data/idx_sub3'

        )

    )

日期字段区分

CREATE TABLE employees1 (

    id INT NOT NULL,

    fname VARCHAR(30),

    lname VARCHAR(30),

    hired DATE NOT NULL DEFAULT '1970-01-01',

    separated DATE NOT NULL DEFAULT '9999-12-31',

    job_code INT,

    store_id INT

)

PARTITION BY RANGE ( YEAR(separated) ) (

    PARTITION p0 VALUES LESS THAN (1991),

    PARTITION p1 VALUES LESS THAN (1996),

    PARTITION p2 VALUES LESS THAN (2001),

    PARTITION p3 VALUES LESS THAN MAXVALUE

)

工具/原料:MySQL,主机大师

1、打开主机大师软件界面,点击右下方【迁移MySQL数据目录】按钮,d出迁移data数据窗体:

2、点击【浏览】按钮,选择合适的路径,本例选择“D:\NewData”:

3、在新的data目录,除了通过浏览选择,也可以直接输入(如果不存在,系统会提示自动创建),点击【开始迁移】按钮:

4、迁移提示框,注意详细阅读,并确保磁盘空间充足,然后点击【是】:

5、正在迁移中,速度快慢取决于数据量大小,请稍候。

6、迁移完成,提示成功!

9、打开新目录“D:\NewData”,可以看到刚才新建的数据库“newbase”已经成功:


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/7665399.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-08
下一篇 2023-04-08

发表评论

登录后才能评论

评论列表(0条)

保存