相关的文档10bet官方网站 本手册下载 本手册摘录

24.3.4分区维护

可以使用用于此类目的的SQL语句在已分区的表上执行许多表和分区维护任务。

可以使用这些语句来完成分区表的表维护检查表优化表分析表,修理表,分区表支持。

您可以使用许多扩展来ALTER TABLE直接在一个或多个分区上执行该类型的操作,如下表所示:

  • 重建分区。重建分区;这与删除分区中存储的所有记录,然后重新插入它们的效果相同。这对于碎片整理很有用。

    例子:

    ALTER TABLE t1 REBUILD PARTITION
  • 优化分区。如果您已经从一个分区中删除了大量的行,或者您已经对一个具有变长行(即具有VARCHAR,或文本列),您可以使用ALTER TABLE……优化分区回收任何未使用的空间并对分区数据文件进行碎片整理。

    例子:

    3、优化分区

    使用优化分区在给定的分区上等同于运行检查分区分析分区,修复分区在这个分区。

    一些MySQL存储引擎,包括InnoDB,不支持分区优化;在这些情况下,ALTER TABLE……优化分区分析并重新构建整个表,并发出适当的警告。(Bug #11751825, Bug #42822ALTER TABLE……重建分区ALTER TABLE……分析分区相反,要避免这个问题。

  • 分析分区。这将读取和存储分区的密钥分发。

    例子:

    3、分析分区p3
  • 修复分区。这可以修复损坏的分区。

    例子:

    ALTER TABLE t1 REPAIR PARTITION

    通常情况下,修复分区当分区包含重复的键错误时失败。您可以使用改变忽视表使用此选项,在这种情况下,由于存在重复键而不能移动的所有行将从分区中删除(Bug #16900947)。

  • 检查分区。您可以用与您使用的方法基本相同的方式检查分区的错误检查表与非分区表。

    例子:

    ALTER TABLE trb3 CHECK PARTITION p1

    该语句告诉您是分区中的数据还是索引p1的表t1是损坏的。如果是这样,请使用ALTER TABLE……修复分区修复分区。

    通常情况下,检查分区当分区包含重复的键错误时失败。您可以使用改变忽视表使用此选项,在这种情况下,语句将返回发现重复键冲突的分区中每一行的内容。只报告表的分区表达式中列的值。(错误# 16900947)

刚才显示的列表中的每个语句也支持该关键字所有代替分区名称列表。使用所有使语句作用于表中的所有分区。

还可以使用ALTER TABLE……截断分区.该语句可用于从一个或多个分区中删除所有行,其方式与下面的方法基本相同截断表删除表中的所有行。

ALTER TABLE……截断分区所有截断表中的所有分区。