mysqlcheck的作用是用来维护表,包括:检查,修复,优化,分析。
    当执行mysqlcheck时给相关的表一个读锁。维护操作很耗时,尤其是大表。
    mysqlcheck使用CHECK TABLE, REPAIR TABLE,ANALYZE TABLE,OPTIMIZE TABLE来维护表。

    调用mysqlcheck的三种方式:

    1. mysqlcheck [options] db_name [tbl_name ...]
    2. mysqlcheck [options] --databases db_name ...
    3. mysqlcheck [options] --all-databases

    mysqlcheck会读取[mysqlcheck],[client]选项组中的选项

    mysqlcheck支持的选项:
    —all-database,-A
    检查所有数据库

    [root@centos7 data]# mysqlcheck -A
    abc.dept                                           OK
    abc.emp                                            OK
    abc.salgrade                                       OK
    bbd.T4                                             OK
    bbd.t1                                             OK
    bbd.t2                                             OK
    bbd.t3                                             OK
    bbd.t5
    note     : The storage engine for the table doesn't support check
    mysql.columns_priv                                 OK
    ...
    

    —analyze,-a
    分析表

    —auto-repair
    当检测到损坏时自动修复。check之后,所有必要的修复会自动完成。

    —bind-address

    —check,-c
    默认选项

    —check-only-changed,-C
    只检查自从上次check以后改变的表,或者没有正确关闭的表

    —database,-B
    指定要检查的数据库 如果没有这个选项,mysqlcheck 将第一个参数当成数据库,第二个参数当成表

    —fast
    只检查那些没有正确关闭的表

    —optimize,-O
    优化表

    —quick
    如果在check时使用这个选项,阻止扫描行时检查不正确的链接

    —repair,-r
    修复表

    —skip-database
    检查时,跳过某个数据库

    —tables
    指定某个表

    [root@centos7 data]# mysqlcheck -B abc --tables emp
    abc.emp                                            OK