MySQL对数据表已有表进行分区表的实现


瀵圭幇鏈夌殑涓涓〃杩涜鍒涘缓鍒嗗尯琛紝骞舵妸鏁版嵁杩佺Щ鍒版柊琛紝鍙互鎸夋椂闂存潵鍒嗗尯锛岀劧鍚庤繖琛ㄤ笉鏄疄鏃舵洿鏂帮紝姣忓ぉ鏈変竴娆℃彃鍏ユ搷浣溿?br /> 鏃堕棿姣旇緝鍏呰锛屼絾鏄湇鍔″櫒涓婃湁鍏朵粬搴旂敤锛屼娇鐢ㄨ緝灏忚祫婧愪负涓昏鏂瑰紡銆?/p>

鎿嶄綔鏂瑰紡

@1 鍙互浣跨敤ALTER TABLE鏉ヨ繘琛屾洿鏀硅〃涓哄垎鍖鸿〃锛岃繖涓搷浣滀細鍒涘缓涓涓垎鍖鸿〃锛岀劧鍚庤嚜鍔ㄨ繘琛屾暟鎹甤opy鐒跺悗鍒犻櫎鍘熻〃锛?br /> 鐚滄祴鏈嶅姟鍣ㄨ祫婧愭秷鑰楁瘮杈冨ぇ銆?/p>

绫讳技鎿嶄綔

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 );

@2 鏂板缓涓涓拰鍘熸潵琛ㄤ竴鏍风殑鍒嗗尯琛紝鐒跺悗鎶婃暟鎹粠鍘熻〃瀵煎嚭锛屾帴鐫鍊掑叆鏂拌〃銆?br /> 锛堝師鏉ョ殑琛ㄤ富閿彧鏈塱d锛岃屾垜鐨勫垎鍖哄瓧娈垫槸 stsdate, 杩欓噷涓婚敭瑕佷慨鏀逛负 id,stsdate 鑱斿悎涓婚敭锛屽垎鍖鸿〃瑕佹眰鍒嗗尯瀛楁瑕佹槸涓婚敭鎴栬呮槸涓婚敭鐨勪竴閮ㄥ垎锛?/p>

鎿嶄綔杩囩▼

閲囩敤绗簩绉嶆柟妗堛傚厛鍒涘缓鍒嗗尯琛紝鐒跺悗瀵煎嚭鍘熻〃鏁版嵁锛屾柊琛ㄥ悕绉版敼涓哄師琛ㄥ悕锛岀劧鍚庢彃鍏ワ紝鏈鍚庡缓绔嬫櫘閫氱储寮曘?/p>

寤虹珛鍒嗗尯琛?/p>

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
);

瀵煎嚭鏁版嵁

mysqldump -u dbname -p --no-create-info dbname apdailysts  > apdailysts.sql

淇敼琛ㄥ悕锛屽鍏ユ暟鎹?10鍒嗛挓灏卞鍏ュ畬浜嗭紝200w, 8g澶氫竴鐐规暟鎹?锛屾祴璇曚笅ok锛屽垹闄ゅ師鏉ョ殑琛ㄣ?/p>

娴嬭瘯鍙互姝e父浣跨敤锛屾敹宸ワ紝瑙傚療2澶┿傘?/p>

鈥?10.16
閫氳繃杩欎袱澶╃殑瑙傚療锛岄〉闈㈢殑鏌ヨ閫熷害浠庢墦涓嶅紑鍒板熀鏈彲浠ョ寮鐨勯熷害浜嗭紝杩欎釜浼樺寲鏄垚绔嬬殑銆?br />

鍒版杩欑瘒鍏充簬MySQL瀵规暟鎹〃宸叉湁琛ㄨ繘琛屽垎鍖鸿〃鐨勫疄鐜扮殑鏂囩珷灏变粙缁嶅埌杩欎簡,鏇村鐩稿叧MySQL 宸叉湁琛ㄨ繘琛屽垎鍖鸿〃鍐呭璇锋悳绱㈣剼鏈箣瀹朵互鍓嶇殑鏂囩珷鎴栫户缁祻瑙堜笅闈㈢殑鐩稿叧鏂囩珷甯屾湜澶у浠ュ悗澶氬鏀寔鑴氭湰涔嬪锛?/p>