mysqlcheck的作用是用来维护表,包括:检查,修复,优化,分析。
当执行mysqlcheck时给相关的表一个读锁。维护操作很耗时,尤其是大表。
mysqlcheck使用CHECK TABLE, REPAIR TABLE,ANALYZE TABLE,OPTIMIZE TABLE来维护表。
调用mysqlcheck的三种方式:
mysqlcheck [options] db_name [tbl_name ...]mysqlcheck [options] --databases db_name ...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
