mysql四种分区

先简单介绍下四种分区: RANGE分区:基于属于一个给定连续区间的列值,把多行分配给分区。 LIST分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。 HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含MySQL 中有效的、产生非负整数值的任何表达式。 KEY分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL服务器提供其自身的哈希函数。必须有一列或多列包含整数值。 ### 1、RjiaosANGE分区 说明:基于属于一个给定连续区间的列值,把多行分配给分区 CREATE TABLE 06a ( id INT NOT NULL KEY AUTO_INCREMENT, username VARCHAR(20), pwd CHAR(32) ) PARTITION BY RANGE(id) ( PARTITION a VALUES LESS THAN (500000), PARTITION b VALUES LESS THAN (1000000), PARTITION c VALUES LESS THAN (1500000, PARTITION d VALUES LESS THAN maxvalue ); ### 2、LIST分区 说明:类似于说明:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择 CREATE TABLE 06a1 ( id INT NOT NULL KEY AUTO_INCREMENT, username VARCHAR(20), pwd CHAR(32) ) PARTITION BY LIST(id) ( PARTITION a VALUES IN (1,5,6), PARTITION b VALUES IN (2,7,8), PARTITION c VALUES IN (3,9,10), PARTITION d VALUES IN (4,11,12) ); ### 3、HASH分区 基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含MySQL 中有效的、产生非负整数值的任何表达式。 要使用HASH分区来分割一个表,要在CREATE TABLE 语句上添加一个“PARTITION BY HASH (expr)”子句,其中“expr”是一个返回一个整数的表达式。 它可以仅仅是字段类型为MySQL 整型的一列的名字。此外,你很可能需要在后面再添加一个“PARTITIONS num”子句,其中num 是一个非负的整数,它表示表将要被分割成分区的数量。 CREATE TABLE 06a2 ( id INT NOT NULL KEY AUTO_INCREMENT, username VARCHAR(20), pwd CHAR(32) ) PARTITION by HASH(id) PARTITIONS 4; ### 4、key分区 CREATE TABLE 06a3 ( id INT NOT NULL KEY AUTO_INCREMENT, username VARCHAR(20), pwd CHAR(32) ) PARTITION BY LINEAR KEY (id) PARTITIONS 4; ### 5、复合分区 create table graderecord ( sno varchar2(10), sname varchar2(20), dormitory varchar2(3), grade int ) partition by range(grade) subpartition by hash(sno,sname) ( partition p1 values less than(75) ( subpartition sp1,subpartition sp2 ), partition p2 values less than(maxvalue) ( subpartition sp3,subpartition sp4 ) );
联系我们

邮箱 626512443@qq.com
电话 18611320371(微信)
QQ群 235681453

Copyright © 2015-2022

备案号:京ICP备15003423号-3