10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 36.4 mb
PDF (A4)- 36.4 mb
PDF (RPM)- 35.7 mb
HTML下载(TGZ)- 9.5 mb
HTML下载(Zip)- 9.5 mb
HTML下载(RPM)- 8.2 mb
手册页(TGZ)- 235.5 kb
手册页(Zip)- 347.0 kb
信息(Gzip)- 3.3 mb
信息(邮政编码)- 3.3 mb
本手册节选

2.11.12重建/修复表/索引

本节描述了如何重建或修复表或索引,这可能是必需的:

  • 更改MySQL处理数据类型或字符集的方式。例如,可能已经纠正了排序规则中的错误,需要重新构建表以更新使用排序规则的字符列的索引。

  • 所需的表维修或升级报告检查表,mysqlcheck,或mysql_upgrade

重建表的方法包括:

转储和重新加载方法

如果因为不同版本的MySQL在二进制(就地)升级或降级后无法处理表而重新构建表,则必须使用转储-重新加载方法。转储表之前使用原来版本的MySQL升级或降级。然后重新加载表升级或降级。

如果只为了重建索引而使用重建表的转储-重新加载方法,则可以在升级或降级之前或之后执行转储。之后还必须重新装填。

如果您需要重建一个InnoDB表,因为检查表操作表示需要升级表,使用, mysqldump创建转储文件mysql重新加载文件。如果检查表操作表明存在损坏或原因InnoDB失败,参考章节14.22.2,强制恢复InnoDB的信息innodb_force_recovery重启选项InnoDB.为了理解问题的类型检查表可能是遇到了,参考一下InnoDB的笔记第13.7.2.2节“检查表声明”

要通过转储和重新加载表来重新构建表,请使用, mysqldump创建转储文件mysql重新加载文件:

, mysqldumpdb_nameT1 >转储。sql mysqldb_name< dump.sql

要重新构建单个数据库中的所有表,请指定数据库名,而不包含以下表名:

, mysqldumpdb_name>转储。sql mysqldb_name< dump.sql

要重新构建所有数据库中的所有表,请使用——所有数据库选择:

Mysqldump——所有数据库的>转储。SQL mysql < dump.sql

ALTER TABLE方法

来重建表ALTER TABLE,使用变更;也就是ALTER TABLE声明,变化表,以使用它已经拥有的存储引擎。例如,如果t1是一个InnoDB表中,使用以下语句:

ALTER TABLE t1 ENGINE = InnoDB;

类型中指定的存储引擎ALTER TABLE声明中,使用显示创建表显示表定义。

修复表方法

修理表方法只适用于MyISAM,存档,CSV表。

你可以使用修理表如果表检查操作表明存在损坏或需要升级。例如,要修复一个MyISAM表中,使用以下语句:

修复表t1;

mysqlcheck——修复类的命令行访问修理表声明。这可能是一种更方便的方法,因为你可以使用——数据库——所有数据库选项分别修复特定数据库或所有数据库中的所有表:

Mysqlcheck—repair—数据库db_name...Mysqlcheck—repair—所有数据库