可以发现MPM还是有一些局限性,特别是分区字段只能是INT类型表示的时间,这对于习惯使用类型datetime作分区字段的同学来说,不得不说是一个打击。话说,Yahoo时间都用unix_timestamp()转化?
接着看下分区配置表:
CREATE TABLE `partition_manager_settings` (
`table` varchar(64) NOT NULL COMMENT 'table name',
`column` varchar(64) NOT NULL COMMENT 'numeric column with time info',
`granularity` int(10) unsigned NOT NULL COMMENT 'granularity of column, i.e. 1=seconds, 60=minutes...',
`increment` int(10) unsigned NOT NULL COMMENT 'seconds per individual partition',
`retain` int(10) unsigned NULL COMMENT 'seconds of data to retain, null for infinite',
`buffer` int(10) unsigned NULL COMMENT 'seconds of empty future partitions to create',
PRIMARY KEY (`table`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=Dynamic;
CREATE TABLE `partition_manager_settings` (
`table` varchar(64) NOT NULL COMMENT 'table name',
`column` varchar(64) NOT NULL COMMENT 'numeric column with time info',
`granularity` int(10) unsigned NOT NULL COMMENT 'granularity of column, i.e. 1=seconds, 60=minutes...',
`increment` int(10) unsigned NOT NULL COMMENT 'seconds per individual partition',
`retain` int(10) unsigned NULL COMMENT 'seconds of data to retain, null for infinite',
`buffer` int(10) unsigned NULL COMMENT 'seconds of empty future partitions to create',
PRIMARY KEY (`table`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=Dynamic;
有了上述这些内容,就能进行分区的自动维护了。接着就是通过存储过程partition_manager进行分区的维护,包括将表转化为分区表、创建新分区、删除老分区。而事件run_partition_manager就是用来进行定时任务设置。
Inside君对整个脚本进行了注释,感兴趣的同学可以点击下方的原文阅读进行查看。
最后,老规矩:“转发文章,手有余香。点击广告,来年加薪”。
当然,还有提前祝小伙伴们中秋节快乐~~~~
猜你喜欢
有态度的MySQL社区