A number of table and partition maintenance tasks can be carried out using SQL statements intended for such purposes on partitioned tables in MySQL 5.1.
Table maintenance of partitioned tables can be accomplished
using the statements CHECK TABLE
,
OPTIMIZE TABLE
,
ANALYZE TABLE
, and
REPAIR TABLE
, which are supported
for partitioned tables as of MySQL 5.1.27.
Also beginning with MySQL 5.1.27, you can use a number of
extensions to ALTER TABLE
for
performing operations of this type on one or more partitions
directly, as described in the following list:
Rebuilding partitions. Rebuilds the partition; this has the same effect as dropping all records stored in the partition, then reinserting them. This can be useful for purposes of defragmentation.
Example:
ALTER TABLE t1 REBUILD PARTITION p0, p1;
Optimizing partitions.
If you have deleted a large number of rows from a
partition or if you have made many changes to a
partitioned table with variable-length rows (that is,
having VARCHAR
,
BLOB
, or TEXT
columns), you can use ALTER TABLE ... OPTIMIZE
PARTITION
to reclaim any unused space and to
defragment the partition data file.
Example:
ALTER TABLE t1 OPTIMIZE PARTITION p0, p1;
Using OPTIMIZE PARTITION
on a given
partition is equivalent to running CHECK
PARTITION
, ANALYZE PARTITION
,
and REPAIR PARTITION
on that partition.
Analyzing partitions. This reads and stores the key distributions for partitions.
Example:
ALTER TABLE t1 ANALYZE PARTITION p3;
Repairing partitions. This repairs corrupted partitions.
Example:
ALTER TABLE t1 REPAIR PARTITION p0,p1;
Checking partitions.
You can check partitions for errors in much the same way
that you can use CHECK TABLE
with
nonpartitioned tables.
Example:
ALTER TABLE trb3 CHECK PARTITION p1;
This command will tell you if the data or indexes in
partition p1
of table
t1
are corrupted. If this is the case,
use ALTER TABLE ... REPAIR PARTITION
to
repair the partition.
The statements ALTER TABLE ... ANALYZE
PARTITION
, ALTER TABLE ... CHECK
PARTITION
, ALTER TABLE ... OPTIMIZE
PARTITION
, and ALTER TABLE ... REPAIR
PARTITION
were originally introduced in MySQL 5.1.5,
but did not work properly and were disabled in MySQL 5.1.24.
They were re-introduced in MySQL 5.1.27. (Bug#20129) The use
of these partitioning-specific ALTER TABLE
statements with tables which are not partitioned is not
supported; beginning with MySQL 5.1.31, it is expressly
disallowed. (Bug#39434)
ALTER TABLE ... REBUILD PARTITION
was also
introduced in MySQL 5.1.5.
User Comments
Add your own comment.