This topic describes how to use the MM function.


  • The partitioning key must be of the DATE, DATETIME, or TIMESTAMP type.
  • This function can be used only for partitioning data into table shards, not into database shards.
  • When you use the MM function to partition data into table shards, ensure that each database shard has no more than 12 table shards. This is because a year has 12 months.
  • The version of the PolarDB-X 1.0 instance must be 5.1.28-1320920 or later..

Routing method

To obtain the table shard subscript, divide by the month of the year in the time value of the database shard key.


The MM function is applicable to scenarios where data needs to be partitioned into table shards by month. The name of a table shard indicates a specific month.


Assume that you want to partition data into database shards by user ID and then create a physical table shard for each month based on the create_time column. You can use the following Data Definition Language (DDL) statement to create tables:

create table test_mm_tb (    
    id int, 
    name varchar(30) DEFAULT NULL,  
    create_time datetime DEFAULT NULL,
    primary key(id)
dbpartition by HASH(id) 
tbpartition by MM(create_time) tbpartitions 12;