Chinaunix首页 | 论坛 | 博客
  • 博客访问: 580909
  • 博文数量: 248
  • 博客积分: 52
  • 博客等级: 民兵
  • 技术积分: 1028
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-23 12:05
文章分类

全部博文(248)

文章存档

2016年(7)

2013年(241)

分类: Mysql/postgreSQL

2013-04-09 03:24:48

原文地址:mysql 5.6 分区维护 作者:mickey_51

本人英语不好,如下翻译有不当之处敬请纠正:
表和分区的一些维护任务,适用于在mysql5.6的分区表上用sql语句进行。
维护分区表,可以使用支持分区表的语句:CHECK TABLE, OPTIMIZE TABLE, ANALYZE TABLE, and REPAIR TABLE
你可以使用ALTER TABLE的一些扩展来执行这种类型的一个或多个分区。如下:

1.重建分区: 这和先删除保存在分区中的所有记录,然后重新插入它们,具有同样的效果。它可用于整理分区碎片。如:
ALTER TABLE t1 REBUILD PARTITION p0, p1;

2.优化分区:如果从分区中删除了大量的行,或者对一个带有可变长度的行(也就是说,有VARCHAR,BLOB,或TEXT类型的列)作了许多修改,可以使用“ALTER TABLE ... OPTIMIZE PARTITION”来收回没有使用的空间,并整理分区数据文件的碎片。如:
ALTER TABLE t1 OPTIMIZE PARTITION p0, p1;

在一个给定的分区表上使用“OPTIMIZE PARTITION”等同于在那个分区上运行CHECK PARTITION,ANALYZE PARTITION,和REPAIR PARTITION。

3.分析分区:读取并保存分区的键分布。如:
ALTER TABLE t1 ANALYZE PARTITION p3;

4.修补分区: 修补被破坏的分区。如:
ALTER TABLE t1 REPAIR PARTITION p0,p1;

5.检查分区: 可以使用几乎与对非分区表使用CHECK TABLE 相同的方式检查分区。如:
ALTER TABLE trb3 CHECK PARTITION p1;

这个命令可以告诉你表t1的分区p1中的数据或索引是否已经被破坏。如果发生了这种情况,使用“ALTER TABLE ... REPAIR PARTITION”来修补该分区。
列表中每个语句也支持用关键字ALL 来替代列表中的分区名。如:

ALTER TABLE trb3 CHECK PARTITION ALL;

使用 mysqlcheck 和 myisamchk 是不支持分区表的。

在mysql 5.6中你可以用ALTER TABLE ... TRUNCATE PARTITION来截断分区。这个语句可以用来删除一个或多个分区中的所有行,和TRUNCATE TABLE从表中删除所有行的操作方式大致相同。
ALTER TABLE ... TRUNCATE PARTITION ALL 截断表中所有的分区。
阅读(1069) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~