Partition management
The most important thing when it comes to managing partitions is adding sufficient partitions in advance for time-based RANGE
partitioning. Failure to do so leads to errors while inserting or, if the MAXVALUE
partition is defined, all the inserts go into the MAXVALUE
partition. For example, take the event_history
table without the pmax
partition:
mysql> CREATE TABLE `event_history` (
`event_id` int(11) NOT NULL,
`event_name` date NOT NULL,
`created_at` datetime NOT NULL,
`last_updated` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`event_type` varchar(10) NOT NULL,
`msg` tinytext NOT NULL,
PRIMARY KEY (`event_id`,`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
PARTITION BY RANGE (to_days(created_at))
(PARTITION p20170930 VALUES LESS THAN (736967) ENGINE = InnoDB,
PARTITION p20171001 VALUES LESS THAN (736968) ENGINE = InnoDB,
PARTITION p20171002 VALUES LESS THAN (736969) ENGINE = InnoDB,
PARTITION p20171003 VALUES LESS THAN (736970...