參數最佳化:其實是MYSQL官方留給我們適用於我們伺服器具體情況的一種解決方式 .
介紹一個命令:
show status ;列出MySQL伺服器運行各種狀態值
Show variables 列出MYSQL伺服器配置資訊/
一:慢查詢
log_slow_queries=slow_queries 這個與以前作用基本相同,並且還是需要重啟才會生效(ON:為開啟off:為關閉)
Slow_launch_time 執行時間超過2秒則被記錄。
slow_query_log 這是一個可以在運行時改變的全域變數,表示是否開啟慢查詢日誌,在此處加上即表示ON.
代表:系統顯示有19054個慢查詢。發現後。直接去日誌查看就OK。
二、最大串連數
有時候MYSQL會出現這個錯誤 ERROR 1040: Too many connections”的情況,
一種是訪問量確實很高,MySQL伺服器抗不住,這個時候就要考慮增加從伺服器分散讀壓力.
另外一種情況是MySQL設定檔中max_connections值過小:
看:
最大串連數為500個.
實際串連數為257
蠻好的。
其實有一個公式來判斷他的好壞。 實際最大串連數/最大串連數 =85%左右的話。很不錯的。
如果10%一下的話。很可能因為你最大串連數配置高了。
三、Key_buffer_size
分配了256M的Key_buffer_size。他主要用來幹嗎?
索引命中率高低的平衡參數。
Key_read_requests 索引的請求
Key_reads 沒用到索引。直接去硬碟掃描去了
那麼我們怎麼去平衡那。這裡還有一個公式
Key_reads/key_read_requests 小於0.1%基本還不錯的。1000個請求一個區掃描硬碟。這個小意思.
四、key_blocks_u*
Key_blocks_unused表示未使用的緩衝簇(blocks)數
Key_blocks_used表示曾經用到的最大的blocks數
現在環境,所有的緩衝都用到了,要麼增加key_buffer_size,要麼就是過渡索引了,把緩衝佔滿了。Key_blocks_used / (Key_blocks_unused + Key_blocks_used) =80%左右還不錯.
五、Open Table情況
這裡代表是表緩衝 table_cache.
Open_tables 開啟表的數量
Opened_tables 開啟過表的數量
我們查詢下table_cache
下面的公式很好的。大約這個情況還不錯的.
Open_tables / Opened_tables * 100% >= 85%
Open_tables / table_cache * 100% <= 95%
今天首先介紹到這裡,其實大家多實踐積累點前輩的經驗。這才是我們的財富。
下篇文章我會繼續介紹
OK了。