[MySQL] 怎样使用Mysqlcheck来检查和修复, 优化表
2017-03-18 20:34
351 查看
mysqlcheck 是 MySQL 自带的一个工具,作用就是
以下的例子都是基于 MySQL 5.6 版本运行状态下(mysqlcheck是个在线工具), 不同的存储引擎对于这个命令的支持程度不同(指的是 check, repair, analyze, optimize),下面内容偏于操作,主要基于 innodb 引擎。
提示:OPTIMIZE 在大表时候可能会消耗很多时间,不清楚原理情况下请谨慎使用!!! innodb 一般不用 OPTIMIZE,请参见 Using MySQL OPTIMIZE tables? For InnoDB? Stop
如果应用中提示某个表坏了,使用下面的命令来检查。
newmandela 是库名, order是表名,还需要输入用户名和密码
如果只想检查某几个库呢? 可以使用 –databases 参数
上面的命令 用来分析 radius 库的
上面的命令报错了,去掉
每张表都出现了
保养表,其实就是检查,分析,修复和优化了。下面来介绍 mysqlcheck 工具的简单使用,官方文档在这里
以下的例子都是基于 MySQL 5.6 版本运行状态下(mysqlcheck是个在线工具), 不同的存储引擎对于这个命令的支持程度不同(指的是 check, repair, analyze, optimize),下面内容偏于操作,主要基于 innodb 引擎。
提示:OPTIMIZE 在大表时候可能会消耗很多时间,不清楚原理情况下请谨慎使用!!! innodb 一般不用 OPTIMIZE,请参见 Using MySQL OPTIMIZE tables? For InnoDB? Stop
检查特定的表
注意在shell中执行,不是在mysql的交互环境下如果应用中提示某个表坏了,使用下面的命令来检查。
$ mysqlcheck -c newmandela order -uroot -p Enter password: newmandela.order OK
newmandela 是库名, order是表名,还需要输入用户名和密码
检查一个库中的所有表
$ mysqlcheck -c newmandela -uroot -p Enter password: newmandela.account OK newmandela.alarm OK newmandela.alarm_settings OK newmandela.auth_group OK newmandela.auth_group_permissions OK newmandela.auth_permission OK ...
检查所有库中的所有表
全部的库和表都检查一遍了。$mysqlcheck -c --all-databases -uroot -p Enter password: apmonitor.acinfo OK apmonitor.apdailysts OK apmonitor.apinfo OK apmonitor.apmonthsts OK apmonitor.apscanlog OK apmonitor.auth_group OK ...
如果只想检查某几个库呢? 可以使用 –databases 参数
$ mysqlcheck -c --databases newmandela radius -uroot -p Enter password: newmandela.account OK newmandela.alarm OK newmandela.alarm_settings OK newmandela.auth_group OK ...
使用 mysqlcheck 分析表
$ mysqlcheck -a radius payment_transactionrecord -uroot -p Enter password: radius.payment_transactionrecord Table is already up to date
上面的命令 用来分析 radius 库的
payment_transactionrecord表,
-a表示 analyze
使用 mysqlcheck 优化表
# mysqlcheck -o radius payment_transactionrecord -uroot -p Enter password: radius.payment_transactionrecord OK
-o代表 optimize ,这里是优化 radius 库的
payment_transactionrecord表
使用 mysqlcheck 修复表
# mysqlcheck -r radius payment_transactionrecord -uroot -p Enter password: radius.payment_transactionrecord OK
-r代表 repair ,这里是 修复 radius 库的
payment_transactionrecord表
检查,优化,修复表组合命令
# mysqlcheck -uroot -p --auto-repair -c -o newmandela Error: mysqlcheck doesn't support multiple contradicting commands.
上面的命令报错了,去掉
-c
# mysqlcheck -uroot -p --auto-repair -o newmandela Enter password: newmandela.account note : Table does not support optimize, doing recreate + analyze instead status : OK newmandela.alarm note : Table does not support optimize, doing recreate + analyze instead status : OK newmandela.alarm_settings note : Table does not support optimize, doing recreate + analyze instead status : OK
每张表都出现了
Table does not support optimize, doing recreate + analyze instead, 代表什么意思呢? 它的意思不是说 innodb 引擎不支持 优化,可以参考 http://stackoverflow.com/questions/30635603/what-does-table-does-not-support-optimize-doing-recreate-analyze-instead-me 的回答。
mysqlcheck 常用选项
A, –all-databases表示所有库
-a, –analyze分析表
-o, –optimize优化表
-r, –repair修复表错误
-c, –check检查表是否出错
–auto-repair自动修复损坏的表
-B, –databases选择多个库
-1, –all-in-1Use one query per database with tables listed in a comma separated way
-C, –check-only-changed检查表最后一次检查之后的变动
-g, –check-upgradeCheck for version dependent changes in the tables
-F, –fastCheck tables that are not closed properly
–fix-db-namesFix DB names
–fix-table-namesFix table names
-f, –forceContinue even when there is an error
-e, –extendedPerform extended check on a table. This will take a long time to execute.
-m, –medium-checkFaster than extended check option, but does most checks
-q, –quickFaster than medium check option
相关文章推荐
- MySQL中使用SHOW PROFILE命令分析性能的用法整理(配合explain效果更好,可以作为优化周期性检查)
- 【MySQL】对mysql表进行优化、分析、检查和修复的说明
- mysql表优化、分析、检查和修复的方法详解
- MySQL表的检查、修复、分析和优化
- mysql表优化、分析、检查和修复的方法详解
- 使用Limit参数优化MySQL查询 潇湘博客
- 修复MySQL数据表永远都在“使用中”
- 怎样在vc、delphi中使用mysql(mysql odbc驱动的使用)
- 使用Limit参数优化MySQL查询的方法
- 使用FxCop做代码检查和优化
- MySQL查询优化讲座之使用索引
- mysql 性能的检查和优化方法
- 使用Limit参数优化MySQL查询 潇湘博客
- MySQL怎样优化WHERE子句
- mysql性能的检查和优化方法
- 使用连接(JOIN)来代替子查询(Sub-Queries) mysql优化系列记录
- MySQL查询优化技术系列讲座之使用索引
- MySQL查询优化技术系列讲座之使用索引
- 使用MySql优化你的PHP程序
- MySQL查询优化技术系列讲座之使用索引【转】