id和分区的日期key组成主健,将一个表按月份拆分成12个分区
CREATE TABLE `gt_stk_2018` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`stockCode` varchar(100) DEFAULT NULL COMMENT '股票代码',
`stockDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '股票历史数据日期',
`closePrice` double DEFAULT NULL COMMENT '最新收盘价',
`fiveAverage` double DEFAULT NULL COMMENT '5日均线',
`tenAverage` double DEFAULT NULL COMMENT '10日均线',
`twentyAverage` double DEFAULT NULL COMMENT '20日均线',
`sixtyAverage` double DEFAULT NULL COMMENT '60日均线',
`oneTwoAverage` double DEFAULT NULL COMMENT '120日均线',
`twoFiveAverage` double DEFAULT NULL COMMENT '250日均线',
`state` varchar(100) DEFAULT NULL COMMENT '状态 0:有效 1:无效 默认为0',
`creator` varchar(100) DEFAULT NULL,
`create_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`updator` varchar(100) DEFAULT NULL,
`update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`, `stockDate`),
KEY `ix_index_stock_space_stockDate` (`stockDate`),
KEY `ix_index_stock_space_stockCode` (`stockCode`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='均线指标'
PARTITION BY RANGE(TO_DAYS(`stockDate`))
(
PARTITION p201712 VALUES LESS THAN (to_days('2018-01-01')),
PARTITION p201801 VALUES LESS THAN (to_days('2018-02-01')),
PARTITION p201802 VALUES LESS THAN (to_days('2018-03-01')),
PARTITION p201803 VALUES LESS THAN (to_days('2018-04-01')),
PARTITION p201804 VALUES LESS THAN (to_days('2018-05-01')),
PARTITION p201805 VALUES LESS THAN (to_days('2018-06-01')),
PARTITION p201806 VALUES LESS THAN (to_days('2018-07-01')),
PARTITION p201807 VALUES LESS THAN (to_days('2018-08-01')),
PARTITION p201808 VALUES LESS THAN (to_days('2018-09-01')),
PARTITION p201809 VALUES LESS THAN (to_days('2018-10-01')),
PARTITION p201810 VALUES LESS THAN (to_days('2018-11-01')),
PARTITION p201811 VALUES LESS THAN (to_days('2018-12-01')),
PARTITION p201812 VALUES LESS THAN (to_days('2019-01-01'))
);