按时间给表建立range分区

来源:互联网 发布:移动网络下载不了电影 编辑:程序博客网 时间:2024/06/04 19:43
 CREATE TABLE `t_agent_adv` (                                                                                                  `agent_adv_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',                                                            `agent_id` int(11) DEFAULT NULL COMMENT '终端ID',                                                                         `adv_name` varchar(255) DEFAULT NULL COMMENT '视频名称',                                                                `adv_size` varchar(255) DEFAULT NULL COMMENT '视频大小',                                                                `adv_duration` varchar(255) DEFAULT NULL COMMENT '视频时长',                                                            `type` varchar(60) DEFAULT NULL,                                                                                            `create_time` datetime DEFAULT NULL,                                                                                        `adv_md5` varchar(255) DEFAULT NULL COMMENT '视频MD5',                                                                    `bak` varchar(10) DEFAULT NULL,                                                                                             `status` smallint(1) DEFAULT '1' COMMENT '使用标志(1使用/-1删除)',                                                  PRIMARY KEY (`agent_adv_id`),                                                                                               KEY `NewIndex1` (`adv_name`),                                                                                               KEY `NewIndex2` (`agent_id`,`adv_name`)                                                                                   ) ENGINE=InnoDB AUTO_INCREMENT=162560974 DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC  

1.修改主键,使分区键成为主键的一部分
2.添加分区</span>
alter table t_agent_adv partition by range(to_days(create_time))(partition  p0 VALUES LESS THAN (736096) ,partition  p1 VALUES LESS THAN (736188) ,partition  p2 VALUES LESS THAN (736249) ,PARTITION  p3 VALUES LESS THAN MAXVALUEENGINE = InnoDB);
分区使用的列必须是主键,且UNIQUE键必须进入分区列,这个使分区受到很大限制,特别是 联合主键不解决问题,必须使用UNIQUE键的情况。</span>
0 0