【Mysql 學習】伺服器引數註解

楊奇龍發表於2011-01-02

命令SHOW STATUS自一個執行的伺服器看見一些統計。
back_log
要求MySQL能有的連線數量。當主要MySQL執行緒在一個很短時間內得到非常多的連線請求,這就起作用,然後主執行緒花些時間(儘管很短)檢查連線並且啟動一個新執行緒。back_log值指出在MySQL暫時停止回答新請求之前的短時間內多少個請求可以被存在堆疊中。只有如果期望在一個短時間內有很多連線,你需要增加它,換句話說,這值對到來的TCP/IP連線的偵聽佇列的大小。你的作業系統在這個佇列大小上有它自己的限制。 Unix listen(2)系統呼叫的手冊頁應該有更多的細節。檢查你的OS文件找出這個變數的最大值。試圖設定back_log高於你的作業系統的限制將是無效的。

connect_timeout
mysqld伺服器在用Bad handshake(糟糕的握手)應答前正在等待一個連線報文的秒數。
delayed_insert_timeout
一個INSERT DELAYED執行緒應該在終止之前等待INSERT語句的時間。
delayed_insert_limit
在插入delayed_insert_limit行後,INSERT DELAYED處理器將檢查是否有任何SELECT語句未執行。如果這樣,在繼續前執行允許這些語句。
 
delayed_queue_size
應該為處理INSERT DELAYED分配多大一個佇列(以行數)。如果排隊滿了,任何進行INSERT DELAYED的客戶將等待直到佇列又有空間了。
 
flush_time
如果這被設定為非零值,那麼每flush_time秒所有表將被關閉(以釋放資源和sync到磁碟)。

interactive_timeout
伺服器在關上它前在一個互動連線上等待行動的秒數。一個互動的客戶被定義為對mysql_real_connect()使用CLIENT_INTERACTIVE選項的客戶。也可見wait_timeout。
 
join_buffer_size
用於全部聯結(join)的緩衝區大小(不是用索引的聯結)。緩衝區對2個表間的每個全部聯結分配一次緩衝區,當增加索引不可能時,增加該值可得到一個更快的全部聯結。(通常得到快速聯結的最佳方法是增加索引。)

key_buffer_size
索引塊是緩衝的並且被所有的執行緒共享。key_buffer_size是用於索引塊的緩衝區大小,增加它可得到更好處理的索引(對所有讀和多重寫),到你能負擔得起那樣多。如果你使它太大,系統將開始換頁並且真的變慢了。記住既然MySQL不快取讀取的資料,你將必須為OS檔案系統快取留下一些空間。為了在寫入多個行時得到更多的速度,使用LOCK TABLES。

long_query_time
如果一個查詢所用時間超過它(以秒計),Slow_queries記數器將被增加。

max_allowed_packet
一個包的最大尺寸。訊息緩衝區被初始化為net_buffer_length位元組,但是可在需要時增加到max_allowed_packet個位元組。預設地,該值太小必能捕捉大的(可能錯誤)包。如果你正在使用大的BLOB列,你必須增加該值。它應該象你想要使用的最大BLOB的那麼大。
 
max_connections
允許的同時客戶的數量。增加該值增加mysqld要求的檔案描述符的數量。

max_connect_errors
如果有多於該數量的從一臺主機中斷的連線,這臺主機阻止進一步的連線。你可用FLUSH HOSTS命令疏通一臺主機。

max_delayed_threads
不要啟動多於的這個數字的執行緒來處理INSERT DELAYED語句。如果你試圖在所有INSERT DELAYED執行緒在用後向一張新表插入資料,行將被插入,就像DELAYED屬性沒被指定那樣。
 
max_join_size
可能將要讀入多於max_join_size個記錄的聯結將返回一個錯誤。如果你的使用者想要執行沒有一個WHERE子句、花很長時間並且返回百萬行的聯結,設定它。

max_sort_length
在排序BLOB或TEXT值時使用的位元組數(每個值僅頭max_sort_length個位元組被使用;其餘的被忽略)。
max_tmp_tables (該選擇目前還不做任何事情)。一個客戶能同時保持開啟的臨時表的最大數量。
 
net_buffer_length
通訊緩衝區在查詢之間被重置到該大小。通常這不應該被改變,但是如果你有很少的記憶體,你能將它設定為查詢期望的大小。(即,客戶發出的SQL語句期望的長度。如果語句超過這個長度,緩衝區自動地被擴大,直到max_allowed_packet個位元組。)
 
record_buffer
每個進行一個順序掃描的執行緒為其掃描的每張表分配這個大小的一個緩衝區。如果你做很多順序掃描,你可能想要增加該值。

sort_buffer
每個需要進行排序的執行緒分配該大小的一個緩衝區。增加這值加速ORDER BY或GROUP BY操作。

table_cache
為所有執行緒開啟表的數量。增加該值能增加mysqld要求的檔案描述符的數量。MySQL對每個唯一開啟的表需要2個檔案描述符,見下面對檔案描述符限制的註釋。

tmp_table_size
如果一張臨時表超出該大小,MySQL產生一個The table tbl_name is full形式的錯誤,如果你做很多高階GROUP BY查詢,增加tmp_table_size值。

thread_stack
每個執行緒的棧大小。由crash-me測試檢測到的許多限制依賴於該值。預設隊一般的操作是足夠大了。

wait_timeout
伺服器在關閉它之前在一個連線上等待行動的秒數。也可見interactive_timeout。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-683170/,如需轉載,請註明出處,否則將追究法律責任。

相關文章