myisamchk 支援以下表格修復操作的選項 (當給定選項 (例如 --recover
或 --safe-recover
) 時執行的操作)
--backup
,-B
命令列格式 --backup
建立
.MYD
檔案的備份,格式為file_name
-time
.BAK-
命令列格式 --character-sets-dir=路徑
類型 字串 預設值 [無]
安裝字元集的目錄。請參閱 章節 12.15,「字元集設定」。
-
命令列格式 --correct-checksum
更正表格的校驗和資訊。
--data-file-length=
,len
-D
len
命令列格式 --data-file-length=長度
類型 數值 資料檔案的最大長度 (當重新建立資料檔案時,若其 「已滿」)。
--extend-check
,-e
命令列格式 --extend-check
執行修復,嘗試從資料檔案中復原每個可能的列。通常,這也會找到很多垃圾列。除非您迫不得已,否則請勿使用此選項。
另請參閱表格檢查選項下的此選項說明。
如需輸出格式的說明,請參閱 章節 6.6.4.5,「使用 myisamchk 取得表格資訊」。
--force
,-f
命令列格式 --force
覆寫舊的中間檔案 (名稱類似
的檔案),而不是中止。tbl_name
.TMD--keys-used=
,val
-k
val
命令列格式 --keys-used=值
類型 數值 對於 myisamchk,選項值是一個位元值,表示要更新哪些索引。選項值的每個二進位位元對應於一個表格索引,其中第一個索引為位元 0。選項值為 0 會停用所有索引的更新,可用於取得更快的插入速度。停用的索引可以使用 myisamchk -r 重新啟動。
-
命令列格式 --max-record-length=長度
類型 數值 如果 myisamchk 無法配置記憶體來保留大於指定長度的列,則跳過這些列。
--quick
,-q
命令列格式 --quick
僅修改索引檔案,不修改資料檔案,以實現更快的修復。您可以指定此選項兩次,以強制 myisamchk 在索引鍵重複時修改原始資料檔案。
--recover
,-r
命令列格式 --recover
執行修復,可以修復幾乎所有問題,除了唯一索引鍵不是唯一的情況 (對於
MyISAM
表格來說,這是極不可能發生的錯誤)。如果您想要復原表格,這是第一個要嘗試的選項。只有當 myisamchk 報告無法使用--recover
復原表格時,您才應該嘗試--safe-recover
。(在不太可能發生的情況下,如果--recover
失敗,資料檔案會保持完整)。如果您有大量記憶體,您應該增加
myisam_sort_buffer_size
的值。--safe-recover
,-o
命令列格式 --safe-recover
使用舊的復原方法進行修復,該方法會依序讀取所有列,並根據找到的列更新所有索引樹。這比
--recover
慢一個數量級,但可以處理--recover
無法處理的幾個極不可能發生的情況。此復原方法也比--recover
使用更少的磁碟空間。通常,您應該先使用--recover
進行修復,然後僅在--recover
失敗時才使用--safe-recover
。如果您有大量記憶體,則應增加
key_buffer_size
的值。-
命令列格式 --set-collation=name
類型 字串 指定用於排序表格索引的校對規則。字元集名稱由校對規則名稱的第一部分暗示。
--sort-recover
,-n
命令列格式 --sort-recover
強制 myisamchk 使用排序來解析索引鍵,即使暫存檔會非常大。
--tmpdir=
,dir_name
-t
dir_name
命令列格式 --tmpdir=dir_name
類型 目錄名稱 用於儲存暫存檔的目錄路徑。如果未設定此項,myisamchk 會使用
TMPDIR
環境變數的值。--tmpdir
可以設定為目錄路徑的列表,這些目錄路徑會以循環方式依序用於建立暫存檔。目錄名稱之間的分隔符號在 Unix 上是冒號 (:
),在 Windows 上是分號 (;
)。--unpack
,-u
命令列格式 --unpack
解壓縮使用 myisampack 壓縮的表格。