MySQL 數(shù)據(jù)表修復(fù)方法小結(jié)
本文主要講check table和repair table指令;
1. 指令詳解
在檢查、修復(fù)表,除了用myisamchk指令,還可以用check table、repair table指令。(指令不區(qū)分大小寫)
- 檢查表是否有錯誤
CHECK TABLE對MyISAM和InnoDB表有作用。
對于MyISAM表,關(guān)鍵字統(tǒng)計信息會被更新,CHECK TABLE也可以檢查視圖是否有錯誤,比如在視圖定義中被引用的表已不存在。
名詞解釋:
- InnoDB,是MySQL的數(shù)據(jù)庫引擎之一,現(xiàn)為MySQL的默認(rèn)存儲引擎,為MySQL AB發(fā)布binary的標(biāo)準(zhǔn)之一。
- MyISAM是MySQL的默認(rèn)數(shù)據(jù)庫引擎(5.5版之前),由早期的ISAM所改良。雖然性能極佳,但卻有一個缺點(diǎn):不支持事務(wù)處理(transaction)。不過,在這幾年的發(fā)展下,MySQL也導(dǎo)入了InnoDB(另一種數(shù)據(jù)庫引擎),以強(qiáng)化參照完整性與并發(fā)違規(guī)處理機(jī)制,后來就逐漸取代MyISAM。
說明:一些只對myisam表有作用(對innodb和視圖無效)的選項介紹:
- QUICK:不掃描行,不檢查錯誤的鏈接。
- FAST:只檢查沒有被正確關(guān)閉的表。
- CHANGED:只檢查自上次檢查后被更改的表,和沒有被正確關(guān)閉的表。
- MEDIUM:掃描行,以驗(yàn)證被刪除的鏈接是有效的。也可以計算各行的關(guān)鍵字校驗(yàn)和,并使用計算出的校驗(yàn)和驗(yàn)證這一點(diǎn)。
- EXTENDED:對每行的所有關(guān)鍵字進(jìn)行一個全面的關(guān)鍵字查找。這可以確保表是100%一致的,但是花的時間較長,所以很少使用。
修復(fù)有錯誤的表
REPAIR TABLE 用于修復(fù)被破壞的表。
默認(rèn)情況下,REPAIR TABLE與myisamchk --recover tbl_name具有相同的效。
REPAIR TABLE對MyISAM和ARCHIVE表起作用
語法如下: REPAIR [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ... [QUICK] [EXTENDED] [USE_FRM] quick:repair只修復(fù)索引,等價于“myisamchk --recover --quick tablename” extended:MySQL會一行一行地創(chuàng)建索引行,等價于”myisamchk --safe-recover tablename“ use_frm:如果.MYI索引文件缺失或標(biāo)題被破壞,則使用此選項,用來自.frm文件重新創(chuàng)建.MYI文件。這種修復(fù)不能使用myisamchk來完成;在repair常規(guī)無法完成時,才會使用這個選項,如果表被壓縮不能使用。 no_write_to_binlog:repair默認(rèn)是寫到二進(jìn)制文件的,如果有主從模式的話,repair也會在從庫執(zhí)行;使用此選項將會禁止寫入到二進(jìn)制文件中。
2. 操作方法:
命令提示符(cmd指令)操作方法
輸入cmd進(jìn)入命令提示符
登錄MySQL
輸入指令msyql -u用戶名 -p密碼
注意:指令必須遵循上圖格式,空格不能少也不能多;
選擇數(shù)據(jù)庫
MySQL中可以創(chuàng)建多個數(shù)據(jù)庫,先選擇再操作;
注意:分號(;)不能省略。
注意:如果你記住了庫名,不需要顯示所有庫的步驟。
檢查表或者修復(fù)表
自此可以輸入check table指令檢查表,也可以輸入repair table修復(fù)表。下圖為檢查表。
mysql> check table t1 medium; 等價于 # myisamchk --medium-check tablename
快速檢查沒有被正確關(guān)閉的表
mysql> check table 表名 quick fast;
注意:操作到步驟1.4就可以了。
SQLyog 操作方法(推薦)
SQLyog 是圖像界面操作更直觀,更簡單。操作邏輯和指令是一樣的,沒有區(qū)別;
下圖,我用repair table指令做例子,所有的指令操作都是如此;
- 打開SQLyog
- 輸入指令
- 執(zhí)行指令
操作成功如下圖:
注意:數(shù)據(jù)表越大操作越慢
到此這篇關(guān)于MySQL 數(shù)據(jù)表修復(fù)方法小結(jié)的文章就介紹到這了,更多相關(guān)MySQL 數(shù)據(jù)表修復(fù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL為什么要避免大事務(wù)以及大事務(wù)解決的方法
這篇文章主要介紹了MySQL為什么要避免大事務(wù)以及大事務(wù)解決的方法,幫助大家更好的理解和學(xué)習(xí)MySQL,感興趣的朋友可以了解下2020-08-08mysql8.0 windows x64 zip包安裝配置教程
這篇文章主要為大家詳細(xì)介紹了mysql8.0 windows x64 zip包安裝配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-0530個mysql千萬級大數(shù)據(jù)SQL查詢優(yōu)化技巧詳解
本文總結(jié)了30個mysql千萬級大數(shù)據(jù)SQL查詢優(yōu)化技巧,特別適合大數(shù)據(jù)里的MYSQL使用2018-03-03MySQL中int?(10)?和?int?(11)?的區(qū)別
這篇文章主要介紹了MySQL中int?(10)?和?int?(11)?的區(qū)別,根據(jù)mysql?中整數(shù)數(shù)據(jù)類型、不同類型的取值范圍、不同數(shù)據(jù)類型的默認(rèn)顯示寬度展開對int的介紹,需要的朋友可以參考一下2022-01-01mysql實(shí)現(xiàn)將data文件直接導(dǎo)入數(shù)據(jù)庫文件
這篇文章主要介紹了mysql實(shí)現(xiàn)將data文件直接導(dǎo)入數(shù)據(jù)庫文件問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03mysql數(shù)據(jù)庫實(shí)現(xiàn)設(shè)置字段長度
這篇文章主要介紹了mysql數(shù)據(jù)庫實(shí)現(xiàn)設(shè)置字段長度,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06