查看某个分区的数据
mysql> SELECT * FROM tr PARTITION (p2);
这条命令用来查看tr
表中p2
分区的所有数据。结果返回了两行记录,表示p2
分区中有两条数据。
增加分区
mysql> alter table tr add partition(
-> PARTITION p6 VALUES LESS THAN (2020)
-> );
这条命令向tr
表添加了一个新的分区p6
,该分区包含所有purchased
日期小于2020
年的记录。
拆分分区
mysql> alter table tr reorganize partition p5 into(
-> partition s0 values less than(2012),
-> partition s1 values less than(2015)
-> );
这条命令将p5
分区拆分为两个新的分区:s0
(包含purchased
日期小于2012
年的记录)和s1
(包含purchased
日期小于2015
年但大于等于2012
年的记录)。
合并分区
mysql> alter table tr reorganize partition s0,s1 into (
-> partition p5 values less than (2015)
-> );
这条命令将之前拆分出来的p5
分区的两个子分区s0
和s1
合并回一个分区p5
,该分区包含所有purchased
日期小于2015
年的记录。
清空某分区的数据
mysql> alter table tr truncate partition p0;
这条命令清空了p0
分区的所有数据,但保留了分区结构。
删除分区
mysql> alter table tr drop partition p1;
这条命令从tr
表中删除了p1
分区及其所有数据。
交换分区
创建与分区表同样结构的交换表
mysql> CREATE TABLE `tr_archive` (
-> `id` INT,
-> `name` VARCHAR(50),
-> `purchased` DATE
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
这条命令创建了一个名为tr_archive
的新表,该表具有与tr
表相同的列结构。
执行exchange交换分区
mysql> alter table tr exchange PARTITION p2 with table tr_archive;
这条命令将tr
表中的p2
分区与tr_archive
表的内容进行了交换。这意味着p2
分区的数据被移动到了tr_archive
表中,而tr_archive
表中的数据被移动到了p2
分区中。
总结
这些命令展示了如何通过SQL操作来管理分区表,包括查看分区数据、增加分区、拆分和合并分区、清空分区、删除分区以及交换分区。这些操作可以帮助您更好地管理和优化大型表的性能。