#這裡只說[mysqld]部分
Datadir = /data/mysql //mysql的資料目錄
Skip-locking //減少錯誤機率值
_/buffer = 384M //減少錯誤機率值
_/buffer = 384M = 1M //網路傳送一次訊息傳輸量的最大值
Table_cache = 512 //表格緩衝區大小
Sort_buffer_size = 2M //當查詢排序時,緩衝區大小,後面會詳細講機
_ Read_buffer_ 作業可使用的緩衝區大小
Read_rnd_buffer_size = 8M //隨機查詢操作可作用的記憶體大小
Myisam_sort_buffer_size=64M //MyISAM表變更時重新排序所需的緩衝
可以快取的連線執行緒最大數量,記憶體4G以上配64或更大的值
Query_cache_size = 32M //查詢緩衝區大小
Thread_concurrency = 8 //設定為邏輯伺服器數量*2
Thread_stack = 256K //MY每個邏輯伺服器數量*2SQL執行緒的堆疊大小,預設值夠大,當出現ERROR:1436 Thread stack overrun時,可提高該值
Skip-name-resolve //最好加上,移除連接過來的機器的dns解析,常出現ERROR: 2013是由這個引起
Log-bin=mysql-bin //開啟二進位日誌
Log-slow-queries = /usr/local/mysql/var/slowquery.log //開啟慢速查詢日誌,可以判斷哪些查詢逾時,及哪些沒有索引的查詢。慢查詢時間預設是5秒,超過5秒的查詢被記錄下來。可以使用set long_query_time = 2來設定慢查詢時間,同時也可使用mysqldumpslow對慢查詢日誌進行分析,如:分析出最多訪問的20次語句,mysqldumpslow –s c –t 20 /usr/local/mysql/var /slowquery.log
#透過查看MYSQL狀態,來修改各參數的值
#查看MYSQL狀態主要使用show指令,一般查系統狀態,及變數參數的值
如:檢視目前系統有多少慢查詢日誌
Show global status like “%slow%”; //可以得出慢速查詢條數slow_queries
看目前慢查詢設定值」
的數值及檢視
Show variables like “max_connections”;
Show global status like “max_used_connections”;
若max_used_connections 快速增加價值。 Set max_connections = 256 (重開機後失效,最好寫進my.cnf中)
#設定key_buffer_size的值
Show global status like ”
Show global status like 」00%」;
計算公式:Key_reads/ Key_read_requests
#查看進程使用情況
Show global status like “Thread%”;
如果Threads_created過大的話,說明MYSQL伺服器一直在創建線程,這時可調整thread_cache_size的值。
#查看查詢快取(qurey_cache_size)設定情況
Show global status like “qcache%”;
Show variables like “query_cache%”;率=Qcache_free_blocks/Qcache_total_blocks,如果超過20%,可以使用flush query cache整理快取碎片。
查詢快取使用率=(query_cache_size-Qcache_free_memory)/query_cache_size,如果在25%以下的話,表示 query_cache_size設定過大。如果在80%以上而且Qcache_lowmem_prunes>50,則表示query_cache_size有點小。
查詢快取命中率=(Qcache_hits-Qcache_inserts)/Qcache_hits,這個只是給參考吧,如果太小,表示讀寫頻繁,而且有碎片。
#查看檔案開啟數情況
Show global status like “open_files”;
Show variables like “open_files_limit”;
一般地,開啟檔案數/一般開啟檔案數所述,平時我們要關注的就是以下參數:
Key_buffer = 384M //根據實際狀態調整
max_connections = 256 //依實際狀態調整至Thread_cache_sizeThreadThread_cache_size 463430pached = 64M
Tmp_table_size = 256M //內存臨時表最大值
Table_cache = 614 //訪問表分配的內存,可降低IO
Skip-name-resolve //加上後避免訪問超時等問
以上就是MYSQL學習總結(六):my.cnf 各參數配置及依狀態優化的內容,更多相關內容請關注PHP中文網(www.php.cn)!