top
Loading...
5.9.5.1.用于myisamchk的一般選項
5.9.5.1. 用于myisamchk的一般選

本節描述的選項可以用于用myisamchk執行的任何類型的表維護操作。本節后面的章節中描述的選項只適合具體操作,例如檢查或修復表。

·         --help-?

顯示幫助消息并退出。

·         --debug=debug_options, -# debug_options

輸出調試記錄文件。debug_options字符串經常是'd:t:o,filename'

·         --silent-s

沉默模式。僅當發生錯誤時寫輸出。你能使用-s兩次(-ss)使myisamchk沉默。

·         --verbose-v

冗長模式。打印更多的信息。這能與-d-e一起使用。為了更冗長,使用-v多次(-vv, -vvv)

·         --version, -V

顯示版本信息并退出。

·         --wait, -w

如果表被鎖定,不是提示錯誤終止,而是在繼續前等待到表被解鎖。請注意如果用--skip-external-locking選項運行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

read_buffer_size

262136

sort_buffer_size

2097144

sort_key_blocks

16

stats_method

nulls_unequal

write_buffer_size

262136

可以用myisamchk --help檢查myisamchk變量及其 默認值:

當用排序鍵值修復鍵值時使用sort_buffer_size,使用--recover時這是很普通的情況。

當用--extend-check檢查表或通過一行一行地將鍵值插入表中(如同普通插入)來修改鍵值時使用Key_buffer_size。在以下情況通過鍵值緩沖區進行修復:

·         使用--safe-recover

·         當直接創建鍵值文件時,需要對鍵值排序的臨時文件有兩倍大。通常是當CHARVARCHAR、或TEXT列的鍵值較大的情況,因為排序操作在處理過程中需要保存全部鍵值。如果你有大量臨時空間,可以通過排序強制使用myisamchk來修復,可以使用--sort-recover選項。

通過鍵值緩沖區的修復占用的硬盤空間比使用排序么少,但是要慢。

如果想要快速修復,將key_buffer_sizesort_buffer_size變量設置到大約可用內存的25%。可以將兩個變量設置為較大的值,因為一個時間只使用一個變量。

myisam_block_size是用于索引塊的內存大小。

stats_method影響當給定--analyze選項時,如何為索引統計搜集處理NULL值。它如同myisam_stats_method系統變量。詳細信息參見5.3.3節,“服務器系統變量”和7.4.7節,“MyISAM索引統計集合”的myisam_stats_method的描述。

ft_min_word_lenft_max_word_len表示FULLTEXT索引的最小和最大字長。ft_stopword_file為停止字文件的文件名。需要在以下環境中對其進行設置。

如果你使用myisamchk來修改表索引(例如修復或分析),使用最小和最大字長和停止字文件的 默認全文參數值(除非你另外指定)重建FULLTEXT索引。這樣會導致查詢失敗。

出現這些問題是因為只有服務器知道這些參數。它們沒有保存在MyISAM索引文件中。如果你修改了服務器中的最小或最大字長或停止字文件,要避免該問題,為用于mysqldmyisamchk指定相同的ft_min_word_lenft_max_word_lenft_stopword_file值。例如,如果你將最小字長設置為3,可以這樣使用myisamchk來修復表:

shell> 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 TABLEANALYZE TABLEOPTIMIZE TABLEALTER TABLE。這些語句由服務器執行,知道要使用的正確的全文參數值。

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html
北斗有巢氏 有巢氏北斗