-- 创建表CREATETABLE table_range (
a bigint(20)DEFAULTNULL,
b varchar(255)DEFAULTNULL,
c int(11)DEFAULTNULL,
d dateDEFAULTNULL,KEY m_index (a,b,c))-- 创建 RANGE 表分区 按照年分区PARTITIONBY RANGE(YEAR(d))(PARTITION p0 VALUES LESS THAN (1900),PARTITION p1 VALUES LESS THAN (2010),PARTITION p2 VALUES LESS THAN MAXVALUE
);-- 添加数据INSERTINTO table_range VALUES(1,'1',1,'1900-01-01'),(2,'2',2,'2009-02-02'),(3,'3',3,'2019-03-03');-- 添加表分区-- ALTER TABLE table_range ADD PARTITION (PARTITION p3 VALUES LESS THAN (2014));-- 清空表分区-- ALTER TABLE table_range TRUNCATE PARTITION p1;-- 删除表分区-- ALTER TABLE table_range DROP PARTITION p3;-- 查询数据 1900~2009 之间的数据,这里只会查询 p0 表分区SELECT*FROM table_range WHERE d >1900AND d <2009;-- 指定查询 p1 表分区SELECT*FROM table_range PARTITION(p1);
-- 创建表CREATETABLE table_range (
a bigint(20)DEFAULTNULL,
b varchar(255)DEFAULTNULL,
c int(11)DEFAULTNULL,
d dateDEFAULTNULL,KEY m_index (a,b,c))-- 创建 RANGE 表分区 按照 年、月、日 分区PARTITIONBY RANGE(TO_DAYS(d))(PARTITION p0 VALUES LESS THAN (TO_DAYS('2017-02-01')),PARTITION p1 VALUES LESS THAN (TO_DAYS('2017-03-01')),PARTITION p2 VALUES LESS THAN MAXVALUE
);
-- 创建表CREATETABLE table_range (
a bigint(20)DEFAULTNULL,
b varchar(255)DEFAULTNULL,
c int(11)DEFAULTNULL,
d TIMESTAMPDEFAULTNULL,KEY m_index (a,b,c))-- 创建 RANGE 表分区 按照 时间戳 分区PARTITIONBY RANGE(UNIX_TIMESTAMP(d))(PARTITION p0 VALUES LESS THAN (UNIX_TIMESTAMP('2017-02-01 00:00:00')),PARTITION p1 VALUES LESS THAN (UNIX_TIMESTAMP('2017-03-01 00:00:00')),PARTITION p2 VALUES LESS THAN MAXVALUE
);