mysql分區表創建思路


mysql分區表有range,list,hash,key,其中每個分區又有特殊的類型。對於RANGE分區,有RANGE COLUMNS分區。對於LIST分區,有LIST COLUMNS分區。對於HASH分區,有LINEAR HASH分區。對於KEY分區,有LINEAR KEY分區。具體想知道是什么看下面鏈接

https://www.cnblogs.com/ivictor/p/5033708.html

 

 

二話不話,下面是直接處理分區表的操作。

1、直接使用語句增加分區表,這個操作會自動將數據弄到新的分區表,然后刪除原表。如果數據量很大,很占服務器資源(??其實我真沒有測試過,不知道到底是不是的)

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、新建一個跟原來的表一樣的結果,將新的表進行分區,然后將原來的表導出,將原來的表改名為另一上名,將新的表改為原來的表的名字,然后導入數據

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

  導入數據

mysql-u dbname -p  dbname < apdailysts.sql

  

不知道為毛,我1G的數據導入N分鍾都沒導完。應該可加些參數。等我找到答案再來更新

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM