MMDD
This topic describes how to use the MMDD function.
Description
You can use the MMDD function to divide the day in each time value of the shard key of a database shard by 366 to obtain the subscripts for table shards.
Limits
A shard key must be of the DATE, DATETIME, or TIMESTAMP type.
The MMDD function can be used only for table sharding. This function cannot be used for database sharding.
When you use the MMDD function to partition data into table shards, make sure that each database shard has no more than 366 table shards. This is because a year cannot have more than 366 days.
Scenarios
Data needs to be partitioned into table shards by day of a year. The subscript of each table shard name indicates a specific day of a year.
Examples
Data needs to be first partitioned into database shards based on the ID column. Then, table shards are created based on the days of a year in the values of the create_time column. This way, each day of a year can correspond to a physical table shard. In this case, you can execute the following DDL statement:
create table test_mmdd_tb (
id int,
name varchar(30) DEFAULT NULL,
create_time datetime DEFAULT NULL,
primary key(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
dbpartition by HASH(name)
tbpartition by MMDD(create_time) tbpartitions 366;