您的位置:首页 > 数据库 > MySQL

MySQL多列分区

2013-11-05 21:03 477 查看
一个针对MySQL5.5 COLUMNS分区的实例
创建表:
drop table if exists partition_test;CREATE TABLE `partition_test` (
	  `t_id` int(11) NOT NULL AUTO_INCREMENT,
	  `test_date` datetime NOT NULL,
	  `t_key` varchar(16),
	  `test_info` varchar(50) DEFAULT 'test',
	  PRIMARY KEY (`t_id`,`test_date`,`t_key`)
	) ENGINE=InnoDB DEFAULT CHARSET=utf8
	PARTITION BY RANGE COLUMNS (test_date,t_key)
	(
	PARTITION p201303151 VALUES LESS THAN ('2013-03-15','m2'),
	PARTITION p201303152 VALUES LESS THAN ('2013-03-15','m3'),
	PARTITION p201303161 VALUES LESS THAN ('2013-03-16','m2'),
	PARTITION p201303162 VALUES LESS THAN ('2013-03-16','m3'),
	PARTITION p201303171 VALUES LESS THAN ('2013-03-17','m2'),
	PARTITION p201303172 VALUES LESS THAN ('2013-03-17','m3')
	);

注意两点:1、5.5新增COLUMNS分区后,时间不再需要时间转换函数;2、分区字段必须为主键
增加表分区
alter table `partition_test` add PARTITION(PARTITION p201303181 VALUES LESS THAN ('2013-03-18','m2'));

删除表分区(删除分区会删除分区中的数据)
alter table `partition_test` DROP PARTITION p201303181;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: