mysql 表分區設置


#查看分區支持
#5.6之前,使用show variables like '%partition%'
#5.6之後
SHOW PLUGINS;

#創建表
CREATE TABLE `dd_tree` (
  `ID` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
  `TreeType` INT(11) NOT NULL DEFAULT '0' COMMENT '樹類型',
  `TreeName` VARCHAR(50) DEFAULT NULL COMMENT '樹名稱',
  PRIMARY KEY (`ID`,`TreeType`)
) ENGINE=INNODB AUTO_INCREMENT=110 DEFAULT CHARSET=utf8;
#插入數據
INSERT INTO dd_tree(`TreeType`,`TreeName`) 
VALUES
(2,'2'),
(3,'3'),
(4,'4'),
(6,'6'),
(1,'1');

 
#刪除主鍵,在刪除主鍵的時候,這個自增會讓該語句執行失敗,先取消字段自增,然後執行該語句後,再加上自增
ALTER TABLE dd_tree CHANGE `ID` `ID` BIGINT(20) NOT NULL COMMENT '主鍵',  DROP PRIMARY KEY;
#添加主鍵,(分區要求:分區中使用的字段必須都包含在主鍵當中)
ALTER TABLE dd_tree
  CHANGE `ID` `ID` BIGINT(20) NOT NULL AUTO_INCREMENT   COMMENT '主鍵',
  CHANGE `TreeType` `TreeType` INT(11) DEFAULT 0  NOT NULL   COMMENT '樹類型', 
  ADD PRIMARY KEY (`ID`, `TreeType`);


-- 創建分區(分區要求:分區中使用的字段必須都包含在主鍵當中)
ALTER TABLE dd_tree PARTITION BY LIST(TreeType)
(
  PARTITION p0 VALUES IN (0), 
  PARTITION p1 VALUES IN (1), 
  PARTITION p2 VALUES IN (2), 
  PARTITION p3 VALUES IN (3), 
  PARTITION p4 VALUES IN (4)
);


-- 刪除分區
ALTER TABLE dd_tree DROP PARTITION p5;
-- 添加新的分區
ALTER TABLE dd_tree ADD PARTITION
(
    PARTITION p5 VALUES IN (5) ENGINE = INNODB,
    PARTITION p6 VALUES IN (6) ENGINE = INNODB
    #PARTITION p9 VALUES less then (6) ENGINE = INNODB
    
);
 

#查看某張表的分區名字,分區內行數,分區表達的列,分區範圍
SELECT PARTITION_NAME,TABLE_ROWS,PARTITION_EXPRESSION,PARTITION_DESCRIPTION FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA='liu_jun_test' AND TABLE_NAME = 'dd_tree'; 
















參考資料

https://cloud.tencent.com/developer/article/1349522
https://www.cnblogs.com/TheoryDance/p/11719572.html
https://blog.csdn.net/poxiaonie/article/details/76914305

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章