mysql中優(yōu)化和修復(fù)數(shù)據(jù)庫(kù)工具mysqlcheck詳細(xì)介紹
一、mysqlcheck簡(jiǎn)介
mysqlcheck客戶(hù)端可以檢查和修復(fù)MyISAM表。它還可以?xún)?yōu)化和分析表。
mysqlcheck的功能類(lèi)似myisamchk,但其工作不同。主要差別是當(dāng)mysqld服務(wù)器在運(yùn)行時(shí)必須使用mysqlcheck,而myisamchk應(yīng)用于服務(wù)器沒(méi)有運(yùn)行時(shí)。使用mysqlcheck的好處是不需要停止服務(wù)器來(lái)檢查或修復(fù)表。使用myisamchk修復(fù)失敗是不可逆的。
Mysqlcheck為用戶(hù)提供了一種方便的使用SQL語(yǔ)句CHECK TABLE、REPAIR TABLE、ANALYZE TABLE和OPTIMIZE TABLE的方式。它確定在要執(zhí)行的操作中使用使用哪個(gè)語(yǔ)句,然后將語(yǔ)句發(fā)送到要執(zhí)行的服務(wù)器上。
同其它客戶(hù)端比較,mysqlcheck有一個(gè)特殊特性。重新命名二進(jìn)制可以更改檢查表的默認(rèn)行為(--check)。如果你想要一個(gè)工具默認(rèn)可以修復(fù)表的工具,只需要將mysqlcheck重新復(fù)制為mysqlrepair,或者使用一個(gè)符號(hào)鏈接mysqlrepair鏈接mysqlcheck。如果調(diào)用mysqlrepair,可按照命令修復(fù)表。
下面的名可用來(lái)更改mysqlcheck的默認(rèn)行為:
mysqlrepair
默認(rèn)選項(xiàng)為--repair
mysqlanalyze
默認(rèn)選項(xiàng)為--analyze
mysqloptimize
默認(rèn)選項(xiàng)為--optimize
二、mysqlcheck的使用
1.有3種方式來(lái)調(diào)用mysqlcheck:
shell> mysqlcheck[options] db_name [tables]
shell> mysqlcheck[options] ---database DB1 [DB2 DB3...]
shell> mysqlcheck[options] --all--database
如果沒(méi)有指定任何表或使用---database或--all--database選項(xiàng),則檢查整個(gè)數(shù)據(jù)庫(kù)。
2.修復(fù)所有的數(shù)據(jù)庫(kù)
使用上面的命令即可最佳化所有數(shù)據(jù)庫(kù)
參數(shù)含意:
-c = Check table for errors
-o = Optimise table
-r = Can fix almost anything except unique keys that aren't unique
-m = --medium-check
注:MYSQL版本為5.5時(shí),命令中請(qǐng)刪除-o
3.修復(fù)指定的數(shù)據(jù)庫(kù)
mysqlcheck -hlocalhost -auto-repair -uroot -p****** dataname
4.附帶簡(jiǎn)單講一下mysqlcheck使用詳解
用法:
mysqlcheck [OPTIONS] –databases DB1 [DB2 DB3...]
mysqlcheck [OPTIONS] –all-databases
常用選項(xiàng):
-A 所有數(shù)據(jù)庫(kù)
-a 分析指定的表
-c 檢查庫(kù)或表
-r 修復(fù)庫(kù)或表
-o 優(yōu)化指定的表
-h mysql服務(wù)主機(jī)
-P 端口
-u 用戶(hù)名
-p 密碼
--auto-repair 修復(fù)已損壞表
三、獲得mysqlcheck.exe
通過(guò)mysql.com下載你對(duì)應(yīng)版本號(hào)的mysql安裝包(noinstall 無(wú)需安裝版本)。安裝完mysql數(shù)據(jù)庫(kù)即安裝了此命令,在路徑mysql\mysql server 5.0\bin下。
四、mysqlcheck參數(shù)詳解:
---help,-?
顯示幫助消息并退出。
--all--database,-A
檢查所有數(shù)據(jù)庫(kù)中的所有表。與使用---database選項(xiàng)相同,在命令行中命名所有數(shù)據(jù)庫(kù)。
--all-in-1,-1
不是為每個(gè)表發(fā)出一個(gè)語(yǔ)句,而是為命名數(shù)據(jù)庫(kù)中待處理的所有表的每個(gè)數(shù)據(jù)庫(kù)執(zhí)行一個(gè)語(yǔ)句。
--analyze,-a
分析表。
--auto-repair
如果某個(gè)被檢查的表破壞了,自動(dòng)修復(fù)它。檢查完所有表后自動(dòng)進(jìn)行所有需要的修復(fù)。
--character-sets-dir=path
字符集的安裝目錄。參見(jiàn)5.10.1節(jié),“數(shù)據(jù)和排序用字符集”。
--check,-c
檢查表的錯(cuò)誤。
--check-only-changed,-C
只檢查上次檢查以來(lái)已經(jīng)更改的或沒(méi)有正確關(guān)閉的表。
--compress
壓縮在客戶(hù)端和服務(wù)器之間發(fā)送的所有信息(如果二者均支持壓縮)。
---database,-B
處理數(shù)據(jù)庫(kù)中命名的所有表。使用該選項(xiàng),所有字名參量被看作數(shù)據(jù)庫(kù)名,而不是表名。
---debug[=debug_options],-# [debug_options]
寫(xiě)調(diào)試日志。debug_options字符串通常為'd:t:o,file_name'。
--default-character-set=charset
使用charsetas默認(rèn)字符集。參見(jiàn)5.10.1節(jié),“數(shù)據(jù)和排序用字符集”。
--extended,-e
如果你正使用該選項(xiàng)來(lái)檢查表,可以確保它們100%地一致,但需要很長(zhǎng)的時(shí)間。
如果你正使用該選項(xiàng)來(lái)修復(fù)表,則運(yùn)行擴(kuò)展修復(fù),不但執(zhí)行的時(shí)間很長(zhǎng),而且還會(huì)產(chǎn)生大量的垃圾行!
--fast,-F
只檢查沒(méi)有正確關(guān)閉的表。
--force,-f
即使出現(xiàn)SQL錯(cuò)誤也繼續(xù)。
--host=host_name,-h host_name
連接給定主機(jī)上的MySQL服務(wù)器。
--medium-check,-m
執(zhí)行比--extended操作更快的檢查。只能發(fā)現(xiàn)99.99%的錯(cuò)誤,在大多數(shù)情況下這已經(jīng)足夠了。
--optimize,-o
優(yōu)化表。
--password[=password],-p[password]
當(dāng)連接服務(wù)器時(shí)使用的密碼。如果使用短選項(xiàng)形式(-p),選項(xiàng)和 密碼之間不能有空格。如果在命令行中--password或-p選項(xiàng)后面沒(méi)有 密碼值,則提示輸入一個(gè)密碼。
--port=port_num,-P port_num
用于連接的TCP/IP端口號(hào)。
--protocol={TCP | SOCKET | PIPE | MEMORY}
使用的連接協(xié)議。
--quick,-q
如果你正使用該選項(xiàng)在檢查表,它防止掃描行以檢查錯(cuò)誤鏈接的檢查。這是最快的檢查方法。
如果你正使用該選項(xiàng)在修復(fù)表,它嘗試只修復(fù)索引樹(shù)。這是最快的修復(fù)方法。
--repair,-r
執(zhí)行可以修復(fù)大部分問(wèn)題的修復(fù),只是唯一值不唯一時(shí)不能修復(fù)。
--silent,-s
沉默模式。只打印錯(cuò)誤消息。
--socket=path,-S path
用于連接的套接字文件。
--tables
覆蓋---database或-B選項(xiàng)。選項(xiàng)后面的所有參量被視為表名。
--user=user_name,-u user_name
當(dāng)連接服務(wù)器時(shí)使用的MySQL用戶(hù)名。
--verbose,-v
冗長(zhǎng)模式。打印關(guān)于各階段程序操作的信息。
--version,-V
顯示版本信息并退出。
相關(guān)文章
MySQL底層數(shù)據(jù)結(jié)構(gòu)選用B+樹(shù)的原因
大家好,本篇文章主要講的是MySQL底層數(shù)據(jù)結(jié)構(gòu)選用B+樹(shù)的原因,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下,方便下次瀏覽2021-12-12關(guān)于數(shù)據(jù)庫(kù)中保留小數(shù)位的問(wèn)題
本篇文章是對(duì)關(guān)于在數(shù)據(jù)庫(kù)中保留小數(shù)位的問(wèn)題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07mysql之delete刪除記錄后數(shù)據(jù)庫(kù)大小不變
這篇文章主要介紹了mysql之delete刪除記錄后數(shù)據(jù)庫(kù)大小不變的相關(guān)資料,需要的朋友可以參考下2016-06-06mysql實(shí)現(xiàn)查詢(xún)每門(mén)課程成績(jī)最好的前兩名學(xué)生id和姓名
這篇文章主要介紹了mysql實(shí)現(xiàn)查詢(xún)每門(mén)課程成績(jī)最好的前兩名學(xué)生id和姓名方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11Windows下mysql?8.0.29?winx64安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了Windows下mysql?8.0.29?winx64安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07關(guān)于MySQL的索引之最左前綴優(yōu)化詳解
這篇文章主要介紹了關(guān)于MySQL的索引之最左前綴優(yōu)化詳解,多個(gè)普通字段組合在一起創(chuàng)建的索引叫做聯(lián)合索引, 也被稱(chēng)之為組合索引,需要的朋友可以參考下2023-05-05解決windows service 2012阿里云服務(wù)器在搭建mysql時(shí)缺少msvcr100.dll文件的問(wèn)題
這篇文章主要介紹了解決windows service 2012阿里云服務(wù)器在搭建mysql時(shí)缺少msvcr100.dll文件的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02