MySQLマルチカラムパーティション

1396 ワード

MySQL 5.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')
	);

注意2点: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;