#查看分區支持
#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