首页 > 数据库技术 > 详细

十三、mysql 分区之 RANGE && LIST

时间:2014-07-12 00:09:07      阅读:533      评论:0      收藏:0      [点我收藏+]
1.RANGE 分区
    创建实例:
    CREATE TABLE EMP (
        id int not null primary key auto_increment,
        name char(25) not null default ‘‘
    )
    PARTITION BY RANGE (id) ( 将字段id定义为分区的字段
    PARTITION P0 VALUES LESS THAN (100), 99以下的id都归到p0分区
    PARTITION P1 VALUES LESS THAN (200), 100-199
    PARTITION P2 VALUES LESS THAN (300)  200-299
    );
    PS::因为默认会将0也算进去,所以P0实际可以存储0-99或-数
    PS::要么不包含主键,如果要包含主键,那么分区字段也必须是主键
    PS::mysql5.5以上支持日期进行分区,有什么作用,^_^,你可以想到的
    
2.List分区
    创建实例:
    CREATE TABLE LIST_EMP (
        tid int not null PRIMARY key auto_increment,
        tname char(20)
    )
    PARTITION BY LIST (tid) (
        PARTITION P0 VALUES IN (1,3,5,7,9),  
        PARTITION P1 VALUES IN (2,4,6,8,10)
    );
    PS::通过上面的2种分区不难看出,RANGE分区是指定一个范围,而List分区是指定一个列表,在list中,只有指定的值才能存进去!
    PS::个人觉得List分区更多可以用在分类上面
    测试:
    insert into list_emp values (null,Php);
    insert into list_emp values (null,Php);
    insert into list_emp values (null,Php);
    insert into list_emp values (null,Php);
    insert into list_emp values (null,Php);
    insert into list_emp values (null,Php);
    insert into list_emp values (null,Php);
    insert into list_emp values (null,Php);
    insert into list_emp values (null,Php);
    insert into list_emp values (null,Php);
    
    insert into list_emp values (null,Php);ERROR 1526 (HY000): Table has no partition for value 11
    
    PS::第11条数据的时候报错,因为没有任何分区表包含了它

 

十三、mysql 分区之 RANGE && LIST,布布扣,bubuko.com

十三、mysql 分区之 RANGE && LIST

原文:http://www.cnblogs.com/shibazi/p/3832843.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!