- 1、Range(范围) – 这种模式允许DBA将数据划分不同范围。例如DBA可以将一个表通过年份划分成三个分区,80年代(1980’s)的数据,90年代(1990’s)的数据以及任何在2000年(包括2000年)后的数据。
- 2、Hash(哈希) – 这种模式允许DBA通过对表的一个或多个列的Hash Key进行计算,最后通过这个Hash码不同数值对应的数据区域进行分区。例如DBA可以建立一个对表主键进行分区的表。
- 3、Key(键值) – Hash模式的一种延伸,这里的Hash Key是MySQL系统产生的。
- 4、List(预定义列表) – 这种模式允许系统通过DBA定义的列表的值所对应的行数据进行分割。例如:DBA建立了一个横跨三个分区的表,分别根据2004年2005年和2006年值所对应的数据。
- 5、Composite(复合模式) – 很神秘吧,哈哈,其实是以上模式的组合使用而已,就不解释了。举例:在初始化已经进行了Range范围分区的表上,我们可以对其中一个分区再进行hash哈希分区。
注意分区的字段要设置成主键
表
1、hash分区,分好,在表结构就可以查看
2、key分区和linear key分区一样的操作
3、list分区,如下,相当数据库查询in,采用in分区
create table category_part( cid int unsigned not null auto_increment,cname varchar(64) not null,parent_id int not null,primary key (cid,parent_id))
partition by list(parent_id)(
partition p1 values in (1,2,3,6,9),
partition p2 values in (4,5,10,22,23),
partition p3 values in (7,8,11,12,13),
partition p4 values in (14,15,16,17,20),
partition p5 values in (18,19,21,24,25)
);
4、RANGE分区,范围分区
- 两个分区,P0为小于10的分区,P1为10到19的分区
- CREATE TABLE t (
- id int
- )
- PARTITION BY RANGE (id)(
- PARTITION p0 VALUES LESS THAN (10) ,
- PARTITION p1 VALUES LESS THAN (20)
- ) ;