myisamchk 支援以下用於資料表修復作業的選項(當提供類似 --recover
或 --safe-recover
之類的選項時執行的作業)
--backup
,-B
命令列格式 --backup
製作
.MYD
檔案的備份,格式為檔案名稱
-時間
.BAK-
命令列格式 --character-sets-dir=路徑
類型 字串 預設值 [無]
安裝字元集的目錄。請參閱第 12.15 節,「字元集組態」。
-
命令列格式 --correct-checksum
更正資料表的總和檢查碼資訊。
--data-file-length=
,長度
-D
長度
命令列格式 --data-file-length=長度
類型 數值 資料檔案的最大長度(當重新建立資料檔案時,如果資料檔案已「滿」)。
--extend-check
,-e
命令列格式 --extend-check
執行修復作業,嘗試從資料檔案中復原每個可能的列。通常,這也會找到許多垃圾列。除非您情急之下,否則請勿使用此選項。
另請參閱資料表檢查選項下的此選項說明。
如需輸出格式的說明,請參閱第 6.6.4.5 節,「使用 myisamchk 取得資料表資訊」。
--force
,-f
命令列格式 --force
覆寫舊的中間檔案(名稱類似
的檔案),而不是中止。資料表名稱
.TMD--keys-used=
,值
-k
值
命令列格式 --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 壓縮的表格。