因爲數據量較大,對現有的表進行分區

操做方式.
可使用ALTER TABLE來進行更改表爲分區表,這個操做會建立一個分區表,而後自動進行數據copy而後刪除原表, 
猜想服務器資源消耗比較大。

ALTER TABLE tbl_rtdata PARTITION BY RANGE (Month(fld_date))

PARTITION p_Apr VALUES LESS THAN (TO_DAYS('2012-05-01')),
PARTITION p_May VALUES LESS THAN (TO_DAYS('2012-06-01')), 
PARTITION p_Dec VALUES LESS THAN MAXVALUE );
**

新建一個和原來表同樣的分區表,而後把數據從原表導出,接着倒入新表。 **

(原來的表主鍵只有id,而個人分區字段是 stsdate, 這裏主鍵要修改成 id,stsdate 聯合主鍵,分區表要求分區字段要是主鍵或者是主鍵的一部分)

操做過程
採用第二種方案。先建立分區表,而後導出原表數據,新表名稱改成原表名,而後插入,最後創建普通索引。

創建分區表

CREATE TABLE `apdailysts_p` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `ap_id` INT(11) NOT NULL, `mac` VARCHAR(17) NOT NULL, `liveinfo` LONGTEXT NOT NULL, `livetime` INT(11) NOT NULL, `stsdate` DATE NOT NULL, `lastmodified` DATETIME NOT NULL, PRIMARY KEY (`id`, `stsdate`) ) PARTITION BY RANGE COLUMNS(stsdate) ( PARTITION p0 VALUES LESS THAN ('2016-06-01'), PARTITION p1 VALUES LESS THAN ('2016-07-01'), PARTITION p2 VALUES LESS THAN ('2016-08-01'), PARTITION p3 VALUES LESS THAN ('2016-09-01'), PARTITION p4 VALUES LESS THAN ('2016-10-01'), PARTITION p5 VALUES LESS THAN ('2016-11-01'), PARTITION p6 VALUES LESS THAN ('2016-12-01'), PARTITION p7 VALUES LESS THAN ('2017-01-01'), PARTITION p8 VALUES LESS THAN ('2017-02-01'), PARTITION p9 VALUES LESS THAN ('2017-03-01'), PARTITION p10 VALUES LESS THAN ('2017-05-01'), PARTITION p11 VALUES LESS THAN ('2017-06-01'), PARTITION p12 VALUES LESS THAN ('2017-07-01'), PARTITION p13 VALUES LESS THAN ('2017-08-01'), PARTITION p14 VALUES LESS THAN ('2017-09-01'), PARTITION p15 VALUES LESS THAN MAXVALUE );