WEB开发网
开发学院数据库MySQL 理解MySQL——并行数据库与分区(Partion) 阅读

理解MySQL——并行数据库与分区(Partion)

 2009-12-30 00:00:00 来源:WEB开发网   
核心提示: CREATETABLEemployees(idINTNOTNULL,fnameVARCHAR(30),lnameVARCHAR(30),hiredDATENOTNULLDEFAULT'1970-01-01',separatedDATENOTNULLDEFAULT'9999

CREATE TABLE employees (
    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 HASH(store_id)
PARTITIONS 4;

如果没有PARTITIONS语句,默认分区数为1。但是,PARTITIONS后面没有数字,系统会报错。

相对于范围分区,HASH分区更可能保证数据均衡分布。

2.2.3、子分区(Subpartitioning)

子分区,也叫做复合分区(composite partitioning),是对分区表的每个分区的进一步分割。例如,

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
    );

表ts 有3个RANGE分区。这3个分区中的每一个分区——p0, p1, 和 p2 ——又被进一步分成了2个子分区。实际上,整个表被分成了3 * 2 = 6个分区。但是,由于PARTITION BY RANGE子句的作用,这些分区的头2个只保存“purchased”列中值小于1990的那些记录。

在MySQL 5.1中,对于已经通过RANGE或LIST分区了的表再进行分区。子分区既可以使用HASH希分区,也可以使用KEY分区。

上一页  5 6 7 8 9 10 

Tags:理解 MySQL 并行

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接