Syntax
------

REPAIR [NO_WRITE_TO_BINLOG | LOCAL] TABLE
  tbl_name [, tbl_name] ...
  [QUICK] [EXTENDED] [USE_FRM]

Description
-----------

REPAIR TABLE repairs a possibly corrupted table. By default, it has the same
effect as

myisamchk --recover tbl_name

or

aria_chk --recover tbl_name

See aria_chk and myisamchk for more.

REPAIR TABLE works for Archive, Aria, CSV and MyISAM tables. For InnoDB, see
recovery modes. For CSV, see also Checking and Repairing CSV Tables. For
Archive, this statement also improves compression. If the storage engine does
not support this statement, a warning is issued.

This statement requires SELECT and INSERT privileges for the table.

By default, REPAIR TABLE statements are written to the binary log and will be
replicated. The NO_WRITE_TO_BINLOG keyword (LOCAL is an alias) will ensure the
statement is not written to the binary log.

From MariaDB 10.3.19, REPAIR TABLE statements are not logged to the binary log
if read_only is set. See also Read-Only Replicas.

When an index is recreated, the storage engine may use a configurable buffer
in the process. Incrementing the buffer speeds up the index creation. Aria and
MyISAM allocate a buffer whose size is defined by aria_sort_buffer_size or
myisam_sort_buffer_size, also used for ALTER TABLE.

REPAIR TABLE is also supported for partitioned tables. However, the USE_FRM
option cannot be used with this statement on a partitioned table.

ALTER TABLE ... REPAIR PARTITION can be used to repair one or more partitions.

The Aria storage engine supports progress reporting for this statement.

URL: https://mariadb.com/kb/en/repair-table/