博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL复合分区
阅读量:7237 次
发布时间:2019-06-29

本文共 2876 字,大约阅读时间需要 9 分钟。

到底还是开源软件,MySQL对复合分区的支持远远没有Oracle丰富。

在MySQL 5.6版本中,只支持RANGE和LIST的子分区,且子分区的类型只能为HASH和KEY。

譬如:

CREATE TABLE ts (id INT, purchased DATE)    PARTITION BY RANGE( YEAR(purchased) )    SUBPARTITION BY HASH( TO_DAYS(purchased) )    SUBPARTITIONS 2 (        PARTITION p0 VALUES LESS THAN (1990),        PARTITION p1 VALUES LESS THAN (2000),        PARTITION p2 VALUES LESS THAN MAXVALUE    );

上述创建语句中,最外层是RANGE分区,分为3个区,里面是HASH子分区,分为2个区,这样,该表一共分了3*2=6个分区。

当然,也可以用SUBPARTITION语句来显示定义子分区。

CREATE TABLE ts (id INT, purchased DATE)    PARTITION BY RANGE( YEAR(purchased) )    SUBPARTITION BY HASH( TO_DAYS(purchased) ) (        PARTITION p0 VALUES LESS THAN (1990) (            SUBPARTITION s0,            SUBPARTITION s1        ),        PARTITION p1 VALUES LESS THAN (2000) (            SUBPARTITION s2,            SUBPARTITION s3        ),        PARTITION p2 VALUES LESS THAN MAXVALUE (            SUBPARTITION s4,            SUBPARTITION s5        )    );

注意:

1> 如果你在分区中使用了SUBPARTITION语句,则每个分区中都必须定义,且每个分区中子分区的数量必须保持一致。譬如以下两种用法就会报错:

CREATE TABLE ts (id INT, purchased DATE)    PARTITION BY RANGE( YEAR(purchased) )    SUBPARTITION BY HASH( TO_DAYS(purchased) ) (        PARTITION p0 VALUES LESS THAN (1990) (            SUBPARTITION s0,            SUBPARTITION s1        ),        PARTITION p1 VALUES LESS THAN (2000) (            SUBPARTITION s2        ),        PARTITION p2 VALUES LESS THAN MAXVALUE (            SUBPARTITION s3,            SUBPARTITION s4        )    );
CREATE TABLE ts (id INT, purchased DATE)    PARTITION BY RANGE( YEAR(purchased) )    SUBPARTITION BY HASH( TO_DAYS(purchased) ) (        PARTITION p0 VALUES LESS THAN (1990) (            SUBPARTITION s0,            SUBPARTITION s1        ),        PARTITION p1 VALUES LESS THAN (2000),        PARTITION p2 VALUES LESS THAN MAXVALUE (            SUBPARTITION s2,            SUBPARTITION s3        )    );

2> 在SUBPARTITION语句中,可指定该分区的物理位置。譬如:

CREATE TABLE ts (id INT, purchased DATE)    PARTITION BY RANGE(YEAR(purchased))    SUBPARTITION BY HASH( TO_DAYS(purchased) ) (        PARTITION p0 VALUES LESS THAN (1990) (            SUBPARTITION s0a                DATA DIRECTORY = '/disk0'                INDEX DIRECTORY = '/disk1',            SUBPARTITION s0b                DATA DIRECTORY = '/disk2'                INDEX DIRECTORY = '/disk3'        ),        PARTITION p1 VALUES LESS THAN (2000) (            SUBPARTITION s1a                DATA DIRECTORY = '/disk4/data'                INDEX DIRECTORY = '/disk4/idx',            SUBPARTITION s1b                DATA DIRECTORY = '/disk5/data'                INDEX DIRECTORY = '/disk5/idx'        ),        PARTITION p2 VALUES LESS THAN MAXVALUE (            SUBPARTITION s2a,            SUBPARTITION s2b        )    );

以上这个创建语句,将不同的分区分布到不同的物理路径下,无疑会极大的分散IO,这一点还是蛮吸引人的。

可惜,在本机测试过程中,报“ERROR 1030 (HY000): Got error -1 from storage engine”错误,具体原因还不太清楚,怀疑是MySQL的bug。

参考:

转载地址:http://qarfm.baihongyu.com/

你可能感兴趣的文章
测试硬件,不妨试试这5款应用
查看>>
《数字逻辑设计与计算机组成》一3.8 实数算术
查看>>
把恶意程序存储到DNA上?黑客们的又一新发现
查看>>
ARM Tech Day:加速释放ARM IP,代号DynamIQ向人工智能进击
查看>>
介绍几种常见的提权方法,你用过几个?
查看>>
IT服务以人为本--感于护航十周年庆典
查看>>
网上转账全免?多家银行网上转账免费
查看>>
《数据虚拟化:商务智能系统的数据架构与管理》一 1.6 数据虚拟化的定义
查看>>
戴尔发布面向制造、生命科学和研究的高性能计算系统
查看>>
赛迪顾问:大数据带来大机会 运营商需关注四大课题
查看>>
双11阿里核心交易系统上云 为全球首次
查看>>
互联网金融 最不该放松安全这根神经
查看>>
既然无法击败AI,何不投身其中:Elon Musk重返脑机接口业务
查看>>
黑客可通过 USB 3.0 端口完全控制使用英特尔第六/七代处理器的PC
查看>>
大数据特区风起张北“中国数坝”
查看>>
制造企业要如何正确看待大数据?
查看>>
大数据计算架构三国争霸胜负未明
查看>>
数据中心布线系统构成及不同规模范例
查看>>
小心升级!iOS 10.2可能会让更多iPhone突然关机
查看>>
李开复:AI 创业的十个真相 | 深度
查看>>