首頁  >  文章  >  資料庫  >  MYSQL學習總結(六):my.cnf 各參數配置及依狀態優化

MYSQL學習總結(六):my.cnf 各參數配置及依狀態優化

黄舟
黄舟原創
2016-12-23 17:14:201679瀏覽

#這裡只說[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)!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn