REPAIR [NO_WRITE_TO_BINLOG | LOCAL]

TABLE tbl_name [, tbl_name] ...

[QUICK] [EXTENDED] [USE_FRM]

REPAIR TABLE 仅对某些存储引擎修复可能损坏的表。

该声明要求SELECT 和INSERT对表的权限。

尽管通常不必运行 REPAIR TABLE,但如果发生灾难,此语句很可能从MyISAM表中取回所有数据。如果您的表经常损坏,请尝试找出原因,以消除使用的需要REPAIR TABLE。请参见 第B.4.3.3节“如果MySQL继续崩溃,该怎么办”和 第16.2.4节“ MyISAM表问题”。

REPAIR TABLE检查表以查看是否需要升级。如果是这样,它将按照与相同的规则执行升级 CHECK TABLE ... FOR UPGRADE。

重要

在执行表修复操作之前,请备份表;在某些情况下,该操作可能会导致数据丢失。可能的原因包括但不限于文件系统错误。请参阅 第7章,备份和恢复。

如果服务器在REPAIR TABLE操作过程中崩溃,则在重新启动服务器后必须立即REPAIR TABLE对表执行另一条 语句,然后再对其执行任何其他操作。在最坏的情况下,您可能有一个新的干净索引文件,而没有有关数据文件的信息,然后执行的下一个操作可能会覆盖数据文件。这是不太可能但可能的情况,强调了首先进行备份的价值。

如果主服务器上的表损坏并REPAIR TABLE在其上运行,则对原始表所做的任何更改都 不会传播到从属服务器。

维修表存储引擎和分区支持

REPAIR TABLE工程 MyISAM, ARCHIVE和 CSV表。对于 MyISAM表,默认情况下它与myisamchk --recover tbl_name具有相同的效果。该语句不适用于视图。

REPAIR TABLE支持分区表。但是,该USE_FRM 选项不能与分区表上的该语句一起使用。

您可以ALTER TABLE ... REPAIR PARTITION用来修复一个或多个分区。有关更多信息,请参见第13.1.9节“ ALTER TABLE语句”和 第23.3.4节“分区的维护”。

维修台选项

NO_WRITE_TO_BINLOG 或 LOCAL

默认情况下,服务器将REPAIR TABLE语句写入二进制日志,以便它们复制到复制从属服务器。要禁止记录日志,请指定可选NO_WRITE_TO_BINLOG 关键字或其别名LOCAL。

QUICK

如果使用该QUICK选项,则 REPAIR TABLE尝试仅修复索引文件,而不修复数据文件。这种修复类似于myisamchk --recover --quick所做的修复。

EXTENDED

如果使用该EXTENDED选项,MySQL将逐行创建索引,而不是通过排序一次创建一个索引。这种修复类似于myisamchk --safe-recover进行的修复。

USE_FRM

USE_FRM如果.MYI索引文件丢失或其标题损坏,则可以使用 该选项。该选项告诉MySQL不信任.MYI 文件头中的信息,并使用数据字典中的信息重新创建它。myisamchk无法完成这种修复 。

警告

仅当您无法使用常规 模式时才 使用该USE_FRM选项 。告诉服务器忽略文件会使修复过程中无法使用存储在表中的重要表元数据 ,这可能产生有害的后果: REPAIR.MYI.MYI

当前AUTO_INCREMENT值丢失。

表中已删除记录的链接丢失,这意味着此后已删除记录的可用空间将保持不变。

的.MYI报头指示该表是否被压缩。如果服务器忽略此信息,则无法确定表已压缩,并且修复会导致表内容的更改或丢失。这意味着 USE_FRM不应将其与压缩表一起使用。无论如何,这都没有必要:压缩表是只读的,因此它们不应损坏。

如果使用USE_FRM的表是由不同于当前运行的MySQL服务器版本创建的, REPAIR TABLE则不要尝试修复该表。在这种情况下,所返回的结果集REPAIR TABLE包含一个 Msg_type值为 error和的 Msg_text行Failed repairing incompatible .FRM file。

如果USE_FRM使用, REPAIR TABLE则不要检查表以查看是否需要升级。

维修台输出

REPAIR TABLE 返回具有下表所示列的结果集。

列 值

Table 表名

Op 总是 repair

Msg_type status,error, info,note,或 warning

Msg_text 信息性消息

该REPAIR TABLE语句可能为每个已修复的表产生许多行信息。最后一行具有Msg_type的价值 status和Msg_test 正常应该是OK。对于 MyISAM表,如果没有 OK,请尝试使用myisamchk --safe-recover对其进行修复 。(REPAIR TABLE并不实现myisamchk的所有选项。通过myisamchk --safe-recover,您还可以使用REPAIR TABLE 不支持的选项,例如 --max-record-length。)

REPAIR TABLE表捕获并引发将表统计信息从旧的损坏文件复制到新创建的文件时发生的任何错误。例如。如果.MYD或.MYI文件所有者 的用户ID与mysqld 进程的用户ID不同,则REPAIR TABLE除非用户启动 mysqld,否则将生成“无法更改文件所有权”错误 root。

表维修注意事项

REPAIR TABLE升级表,如果它包含在预5.6.4格式老时间列(TIME, DATETIME,和 TIMESTAMP列不为小数精度秒支持)和 avoid_temporal_upgrade系统变量被禁用。如果 avoid_temporal_upgrade启用,则REPAIR TABLE忽略表中存在的旧时态列,并且不升级它们。

要升级包含此类临时列的表,请avoid_temporal_upgrade在执行之前将其禁用 REPAIR TABLE。

您可以REPAIR TABLE通过设置某些系统变量来提高性能。

mysql中repair的用法_mysql8 参考手册--REPAIR TABLE语句相关推荐

  1. mysql checksum_mysql8 参考手册--CHECKSUM TABLE语句

    CHECKSUM TABLE tbl_name [, tbl_name] ... [QUICK | EXTENDED] CHECKSUM TABLE报告 表内容的校验和.您可以使用此语句来验证备份,回 ...

  2. mysql通过订单量排序_mysql8 参考手册--通过排序优化

    本节描述了MySQL何时可以使用索引满足ORDER BY子句,无法使用索引时使用的 filesort操作,以及有关优化程序的执行计划信息ORDER BY. 一个ORDER BY有和没有 LIMIT可能 ...

  3. mysql install语句_mysql8 参考手册--INSTALL COMPONENT语句

    INSTALL COMPONENT component_name [, component_name ] ... 该语句安装一个或多个服务器组件,这些组件将立即变为活动状态.组件提供服务器和其他组件可 ...

  4. mysql 8 配置参数优化_mysql8 参考手册--配置非持久性优化器统计参数

    本节介绍如何配置非持久性优化器统计信息.当innodb_stats_persistent=OFF或使用创建或更改单个表时,Optimizer统计信息不会保留在磁盘 上 STATS_PERSISTENT ...

  5. mysql复合语句声明开始于_mysql8 参考手册--BEGIN ... END复合语句

    [begin_label:] BEGIN [statement_list] END [end_label] BEGIN ... END 语法用于编写复合语句,复合语句可以出现在存储程序(存储过程和函数 ...

  6. MySQL可不可以直接定义程序_mysql8 参考手册-定义存储程序

    每个存储的程序都包含一个由SQL语句组成的主体.该语句可以是由多个用分号(;)字符分隔的语句组成的复合语句.例如,以下存储过程的主体由一个BEGIN ... END包含一个SET 语句的块 和一个RE ...

  7. mysql limit 含义_深入分析Mysql中limit的用法

    很久没用mysql的limit,一时大意竟然用错了,自认为(limit 开始,结束),其实错了,正确的应该是(limit 偏移量,条数),为了记住这次错误,转载一篇limit用法详解.推荐给大家,希望 ...

  8. mysql中正则表达式的用法_Mysql中正则表达式Regexp常见用法

    Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含"车友俱乐部"的记录 select * from club_content where ...

  9. mysql中 where in 用法详解

    https://blog.csdn.net/haibo0668/article/details/52584307 sssss mysql中 where in 用法详解 我是高手高手高高手 2016-0 ...

最新文章

  1. 计算机视觉:Bag of words算法实现过程中出现错误及解决方案
  2. php imap_open效率低,求救,为什么 imap 连接这么慢
  3. [MSSQL]ROW_NUMBER函数
  4. 【推导】【数学期望】Gym - 101237D - Short Enough Task
  5. 前端项目里常见的十种报错及其解决办法
  6. Github项目推荐|可视化 GAN 的训练过程
  7. 【Python CheckiO 题解】Remove Accents
  8. background-size在IE8不兼容问题
  9. react 改变css样式_web前端入门到实战:编写CSS代码的8个策略,资深开发工程师总结...
  10. HDU-2024c语言合法标识符
  11. UI设计素材|切换动效,打破界面沉闷感
  12. LInux安装mbedtls
  13. Android实例-利用WebBrowser实现浏览器(XE8+小米2)
  14. 如何在Python中解析XML?
  15. AngularJS自定义指令教程第2部分
  16. java执行查询postgresql得到中文乱码_PostgreSQL 初探
  17. 加息 75 个基点落地,市场短暂宣泄后前路依旧黯淡?
  18. APP Bomb Lab
  19. 模具分类以及塑胶模具设计流程
  20. 【自动微分原理】具体实现方式

热门文章

  1. 燕十八公益教程-学习感想
  2. Skin Snap Art 4破解版下载
  3. iPhone6手写输入法如何设置 方法详解
  4. 重新认识键盘与鼠标——键盘事件与鼠标事件
  5. Win10家庭版安装docker(最新)
  6. 不出门知天下事的好网站好博客
  7. Gartner公布全球超融合“客户心声”, 华云数据、SmartX亚太区呼声最高
  8. 贫富人家的孩子在思维方式上有差异吗?
  9. UI day 10 UItabelView 编辑和移动 UItabelViewController
  10. 腾讯项目总结报告模板