2009年4月2日 星期四

MySQL + 指令 + 最佳化與check

mysqlcheck
mysqlcheck的功能類似myisamchk,但其工作不同。主要差別是當mysqld伺服器在運行時必須使用mysqlcheck,而myisamchk應用於伺服器沒有運行時。使用mysqlcheck的好處是不需要停止伺服器來檢查或修復資料表。
ref: http://twpug.net/docs/mysql-5.1/client-side-scripts.html#mysqlcheck


MySQL 停止後, 於 shell 下修復 TABLE(MyISM)

檢查

myisamchk *.MYI

 

快速修復,試圖不接觸資料檔案來修復索引檔

myisamchk -r -q *.MYI

 

從資料檔案中刪除不正確的記錄和已被刪除的記錄並重建索引檔

myismchk -r *.MYI

 

安全恢復模式使用一個老的恢復方法,處理常規恢復模式不行的少數情況

myisamchk --safe-recover *.MYI

Check Table 是否有錯誤

mysql> CHECK TABLE tbl_name [fast] [quick]

 

於系統運作下, 修復 TABLE

mysql> REPAIR TABLE table_name


ref: http://open.38.com/index.php/topic,1357.0.html

http://linuxhelp.blogspot.com/2006/02/basic-setup-of-mysql-in-gnulinux.html

http://linuxhelp.blogspot.com/2005/06/mysql-cheat-sheet.html

http://www.hkwebs.net/catalog/teach/

最佳化MySQL
mysqlcheck -a -c -o -r 資料庫名稱 資料表名稱
mysqlcheck -a -c -o -r --databases 資料庫名稱1 資料庫名稱2 資料庫名稱3
mysqlcheck -a -c -o -r --all-databases


-a = Analyse given tables.
-c = Check table for errors
-o = Optimise table
-r = Can fix almost anything except unique keys that aren't unique

或者
mysql> use 資料庫名稱
mysql> OPTIMIZE TABLE 資料表名稱;


本文轉貼自http://ssorc.tw/rewrite.php/read-645.html

1 則留言:

nIce 提到...

簡單說:
當資料庫出現異常狀態,或因跳電導致系統不正常被關閉就先使用下面兩個指令做檢查

>check table 資料表名稱
若系統回應資料表損壞再執行
>repair table 資料表名稱

熱門文章