本節中描述的選項可用於 myisamchk 執行的任何類型表格維護操作。後續章節將描述僅適用於特定操作的選項,例如表格檢查或修復。
--help
,-?
命令列格式 --help
顯示說明訊息並結束。選項會依操作類型分組。
--HELP
,-H
命令列格式 --HELP
顯示說明訊息並結束。選項會以單一清單呈現。
--debug=
,debug_options
-#
debug_options
命令列格式 --debug[=debug_options]
類型 字串 預設值 d:t:o,/tmp/myisamchk.trace
寫入偵錯記錄。典型的
debug_options
字串為d:t:o,
。預設值為file_name
d:t:o,/tmp/myisamchk.trace
。只有在使用
WITH_DEBUG
建置 MySQL 時,此選項才可用。Oracle 提供的 MySQL 發行二進位檔沒有使用此選項建置。--defaults-extra-file=
file_name
命令列格式 --defaults-extra-file=file_name
類型 檔案名稱 在全域選項檔案之後,但在使用者選項檔案(在 Unix 上)之前讀取此選項檔案。如果檔案不存在或無法存取,則會發生錯誤。如果
file_name
不是絕對路徑名稱,則會將其解譯為相對於目前目錄。如需有關此選項和其他選項檔案選項的其他資訊,請參閱第 6.2.2.3 節,「影響選項檔案處理的命令列選項」。
-
命令列格式 --defaults-file=file_name
類型 檔案名稱 僅使用給定的選項檔案。如果檔案不存在或無法存取,則會發生錯誤。如果
file_name
不是絕對路徑名稱,則會將其解譯為相對於目前目錄。如需有關此選項和其他選項檔案選項的其他資訊,請參閱第 6.2.2.3 節,「影響選項檔案處理的命令列選項」。
-
命令列格式 --defaults-group-suffix=str
類型 字串 不僅讀取一般選項群組,還讀取具有一般名稱和
str
後綴的群組。例如,myisamchk 通常讀取[myisamchk]
群組。如果將此選項指定為--defaults-group-suffix=_other
,myisamchk 也會讀取[myisamchk_other]
群組。如需有關此選項和其他選項檔案選項的其他資訊,請參閱第 6.2.2.3 節,「影響選項檔案處理的命令列選項」。
-
命令列格式 --no-defaults
不讀取任何選項檔案。如果程式啟動因為從選項檔案讀取不明選項而失敗,則可以使用
--no-defaults
來防止讀取這些選項。例外情況是,如果
.mylogin.cnf
檔案存在,則在所有情況下都會讀取該檔案。這樣可以在命令列上以更安全的方式指定密碼,即使使用--no-defaults
也是如此。若要建立.mylogin.cnf
,請使用 mysql_config_editor 公用程式。請參閱第 6.6.7 節,「mysql_config_editor — MySQL 組態公用程式」。如需有關此選項和其他選項檔案選項的其他資訊,請參閱第 6.2.2.3 節,「影響選項檔案處理的命令列選項」。
-
命令列格式 --print-defaults
列印程式名稱及其從選項檔案取得的所有選項。
如需有關此選項和其他選項檔案選項的其他資訊,請參閱第 6.2.2.3 節,「影響選項檔案處理的命令列選項」。
--silent
,-s
命令列格式 --silent
靜音模式。僅在發生錯誤時才寫入輸出。您可以將
-s
使用兩次 (-ss
) 來讓 myisamchk 保持非常安靜。--verbose
,-v
命令列格式 --verbose
詳細模式。印出程式執行時的更多資訊。可以與
-d
和-e
一起使用。多次使用-v
(-vv
,-vvv
) 可以獲得更多輸出。--version
,-V
命令列格式 --version
顯示版本資訊並結束程式。
--wait
,-w
命令列格式 --wait
類型 布林值 預設值 false
如果表格被鎖定,不要終止並顯示錯誤,而是等待直到表格解鎖後再繼續。如果您執行 mysqld 時停用了外部鎖定,則只有另一個 myisamchk 命令才能鎖定表格。
您也可以使用 --
語法來設定以下變數。var_name
=value
變數 | 預設值 |
---|---|
decode_bits |
9 |
ft_max_word_len |
版本相關 |
ft_min_word_len |
4 |
ft_stopword_file |
內建列表 |
key_buffer_size |
523264 |
myisam_block_size |
1024 |
myisam_sort_key_blocks |
16 |
read_buffer_size |
262136 |
sort_buffer_size |
2097144 |
sort_key_blocks |
16 |
stats_method |
nulls_unequal |
write_buffer_size |
262136 |
可以使用 myisamchk --help 來檢查可能的 myisamchk 變數及其預設值。
當使用排序鍵來修復索引時,會使用 myisam_sort_buffer_size
,當您使用 --recover
時通常會是這種情況。sort_buffer_size
是已棄用的 myisam_sort_buffer_size
同義詞。
當您使用 --extend-check
檢查表格時,或以逐行插入的方式將索引鍵修復到表格中時(例如進行一般插入時),會使用 key_buffer_size
。在下列情況下,會使用索引鍵緩衝區進行修復:
您使用
--safe-recover
。排序索引鍵所需的暫存檔會比直接建立索引鍵檔案大兩倍以上。當您為
CHAR
、VARCHAR
或TEXT
資料行使用較大的索引鍵值時,通常會發生這種情況,因為排序作業需要在進行時儲存完整的索引鍵值。如果您有大量的暫存空間,並且可以強制 myisamchk 使用排序進行修復,您可以使用--sort-recover
選項。
使用索引鍵緩衝區進行修復比使用排序佔用更少的磁碟空間,但速度也慢得多。
如果您想要更快的修復,請將 key_buffer_size
和 myisam_sort_buffer_size
變數設定為可用記憶體的約 25%。您可以將這兩個變數都設定為較大的值,因為一次只會使用其中一個。
myisam_block_size
是用於索引區塊的大小。
當給定 --analyze
選項時,stats_method
會影響索引統計資料收集如何處理 NULL
值。它的作用類似於 myisam_stats_method
系統變數。有關更多資訊,請參閱 第 7.1.8 節「伺服器系統變數」和 第 10.3.8 節「InnoDB 和 MyISAM 索引統計資料收集」中關於 myisam_stats_method
的說明。
ft_min_word_len
和 ft_max_word_len
表示 MyISAM
表格上 FULLTEXT
索引的最小和最大單字長度。ft_stopword_file
指定停用詞檔案。在下列情況下,需要設定這些值。
如果您使用 myisamchk 執行會修改表格索引的操作(例如修復或分析),除非您另行指定,否則會使用最小和最大單字長度以及停用詞檔案的預設全文參數值重建 FULLTEXT
索引。這可能會導致查詢失敗。
之所以會發生問題,是因為這些參數只有伺服器知道。它們不會儲存在 MyISAM
索引檔案中。為避免這個問題,如果您已在伺服器中修改了最小或最大單字長度或停用詞檔案,請為 myisamchk 指定與您用於 mysqld 相同的 ft_min_word_len
、ft_max_word_len
和 ft_stopword_file
值。例如,如果您已將最小單字長度設定為 3,您可以像這樣使用 myisamchk 修復表格:
myisamchk --recover --ft_min_word_len=3 tbl_name.MYI
為了確保 myisamchk 和伺服器對全文參數使用相同的值,您可以將每個值都放在選項檔案的 [mysqld]
和 [myisamchk]
區段中。
[mysqld]
ft_min_word_len=3
[myisamchk]
ft_min_word_len=3
除了使用 myisamchk,也可以使用 REPAIR TABLE
、ANALYZE TABLE
、OPTIMIZE TABLE
或 ALTER TABLE
。這些陳述式是由伺服器執行的,伺服器知道要使用的正確全文參數值。