Heim > Datenbank > MySQL-Tutorial > Hauptteil

怎样使用Mysqlcheck来检查和修复, 优化表的详解

黄舟
Freigeben: 2017-03-20 14:00:52
Original
2922 Leute haben es durchsucht


mysqlcheck 是 MySQL 自带的一个工具,作用就是保养 表,其实就是检查,分析,修复和优化了。下面来介绍 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 -pEnter password:
newmandela.order                                   
OK
Nach dem Login kopieren

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...
Nach dem Login kopieren

检查所有库中的所有表

全部的库和表都检查一遍了。

$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...
Nach dem Login kopieren

如果只想检查某几个库呢? 可以使用 –databases 参数

$ mysqlcheck -c --databases newmandela radius -uroot -p
Enter password:
newmandela.account                                 OK
newmandela.alarm                                   OK
newmandela.alarm_settings                          OK
newmandela.auth_group                              OK...
Nach dem Login kopieren

使用 mysqlcheck 分析表

$ mysqlcheck -a radius payment_transactionrecord  -uroot -pEnter password:
radius.payment_transactionrecord                   Table is already up to date
Nach dem Login kopieren

上面的命令 用来分析 radius 库的 payment_transactionrecord表, -a 表示 analyze

使用 mysqlcheck 优化表

# mysqlcheck -o radius payment_transactionrecord  -uroot -pEnter password:
radius.payment_transactionrecord                   OK
Nach dem Login kopieren

-o 代表 optimize ,这里是优化 radius 库的 payment_transactionrecord

使用 mysqlcheck 修复表

# mysqlcheck -r radius payment_transactionrecord  -uroot -pEnter password:
radius.payment_transactionrecord                   OK
Nach dem Login kopieren

-r 代表 repair ,这里是 修复 radius 库的 payment_transactionrecord

检查,优化,修复表组合命令

# mysqlcheck -uroot -p --auto-repair -c -o newmandelaError:  mysqlcheck doesn't support multiple contradicting commands.
Nach dem Login kopieren

上面的命令报错了,去掉 -c

# mysqlcheck -uroot -p --auto-repair -o newmandelaEnter 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
Nach dem Login kopieren

每张表都出现了 Table does not support optimize, doing recreate + analyze instead, 代表什么意思呢? 它的意思不是说 innodb 引擎不支持 优化,

mysqlcheck 常用选项

  • A, –all-databases 表示所有库

  • -a, –analyze 分析表

  • -o, –optimize  优化表

  • -r, –repair 修复表错误

  • -c, –check 检查表是否出错

  • –auto-repair  自动修复损坏的表

  • -B, –databases 选择多个库

  • -1, –all-in-1 Use one query per database with tables listed in a comma separated way

  • -C, –check-only-changed  检查表最后一次检查之后的变动

  • -g, –check-upgrade Check for version dependent changes in the tables

  • -F, –fast Check tables that are not closed properly

  • –fix-db-names Fix DB names

  • –fix-table-names Fix table names

  • -f, –force Continue even when there is an error

  • -e, –extended Perform extended check on a table. This will take a long time to execute.

  • -m, –medium-check Faster than extended check option, but does most checks

  • -q, –quick Faster than medium check option

Das obige ist der detaillierte Inhalt von怎样使用Mysqlcheck来检查和修复, 优化表的详解. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!