查看某个分区的数据

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分区的两个子分区s0s1合并回一个分区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操作来管理分区表,包括查看分区数据、增加分区、拆分和合并分区、清空分区、删除分区以及交换分区。这些操作可以帮助您更好地管理和优化大型表的性能。