Mysqlはdateタイプによってパーティション化されます

7491 ワード

Mysqlはdateタイプによってパーティション化されます
1.mysql直接dateタイプによるパーティション
create table tie_shop_device_day_1
(	
	tie_day datetime not null comment '        ' primary key,
	shop_id bigint not null comment '  ID',
	shop_name varchar(255) default '' not null	
)
PARTITION BY range columns (tie_day) (
PARTITION p0 VALUES LESS THAN ('2018-08-01'),
PARTITION p1 VALUES LESS THAN ('2018-09-01')
);

ここで使用するパーティション構文はrange columns(tie_day)です.同時にless thanに続くのは標準的なdate日付です.
2.to_を使うdays()関数はdate型値をint型値に変換してパーティション化する
select to_days('2018-12-12');
+-----------------------+
| to_days('2018-12-12') |
+-----------------------+
|                737405 |
+-----------------------+
1 row in set (0.00 sec)
create table tie_shop_device_day
(
	mid bigint auto_increment,
	tie_day date not null comment '        ',
	shop_id bigint not null comment '  ID',
	shop_name varchar(255) default '' not null,
	primary key (mid,tie_day)
)
comment '           (      )'
PARTITION BY RANGE (to_days(tie_day)) (
PARTITION p0 VALUES LESS THAN (to_days('2018-08-01')),
PARTITION p1 VALUES LESS THAN (to_days('2018-09-01')),
PARTITION p2 VALUES LESS THAN (to_days('2018-10-01')),
PARTITION p3 VALUES LESS THAN (to_days('2018-11-01')),
PARTITION p4 VALUES LESS THAN (to_days('2018-12-01')),
PARTITION p5 VALUES LESS THAN (to_days('2019-01-01'))
);