1 根據id范圍進行分區
CREATE TABLE `person1` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`age` int(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10611038 DEFAULT CHARSET=utf8
PARTITION BY RANGE(id)(
PARTITION p0 VAlUES LESS THAN(100),
PARTITION p1 VALUES LESS THAN(200),
PARTITION p2 VALUES LESS THAN(300),
PARTITION p3 VALUES LESS THAN(400),
PARTITION p4 values less than maxvalue
);
2 根據時間進行分區
CREATE TABLE part_date
( c1 int default NULL,
c2 varchar(30) default NULL,
c3 date default NULL) engine=myisam
partition by range (to_days(c3))
(PARTITION p0 VALUES LESS THAN (to_days('2022-03-01')),
PARTITION p1 VALUES LESS THAN (to_days('2022-04-01')) ,
PARTITION p11 VALUES LESS THAN MAXVALUE );
注意:必須要用日期轉換函數,否則失效
3 查看分區個數,以及分區的行數
select partition_name, PARTITION_DESCRIPTION, PARTITION_EXPRESSION, table_rows from information_schema.partitions where table_name = '表名'