首頁  >  文章  >  專題  >  如何透過寶塔面板實現MySQL效能簡單調優

如何透過寶塔面板實現MySQL效能簡單調優

藏色散人
藏色散人轉載
2020-11-05 16:38:104014瀏覽

以下由寶塔教學專欄為大家介紹如何透過寶塔面板實現MySQL效能簡單調優,希望對需要的朋友有幫助!

如何透過寶塔面板實現MySQL效能簡單調優

在PHP MYSQL架構網站運作過程中,往往會遇到各種效能問題影響,如MySQL、PHP、CPU、磁碟IO、快取等,其中MySQL瓶頸就是最常見也最難解決的一種影響網站效能的因素;通常,我們會使用redis、memcached等快取軟體來快取內容,這確實是最優的解決方案之一,但這需要網站程式的支持,然而多數常用網站程式並不支援或無法完美支援這些快取軟體,今天我們就來談談如何透過MySQL自身的設定調整來優化MySQL效能,以緩解MySQL瓶頸問題。

準備:

    1、寶塔Linux面板正式版5.2.0 (2017/09/20發布)  測試版5.2.4

    2、MySQLSQL 5.x

通常MySQL調優我們分成以下幾個部分:

    1、MySQL設定參數調優(需依網站運作調整)

    2、資料表索引調優(效果很明顯,但通常優秀的開源程式都不需要調整)

    3、SQL語句調優(這是程式設計師或DBA幹的事)

今天我們主要談談如果配合寶塔面板的新功能來進行MySQL設定參數調優,我們先來看兩張圖片:

(圖1)

如何透過寶塔面板實現MySQL效能簡單調優

##(圖2)

如何透過寶塔面板實現MySQL效能簡單調優

很明顯,(圖1)顯示的是MySQL目前的運作狀態,(圖2)顯示的是MySQL主要設定參數

#下面我們就來解讀這兩張圖:

1、活動/峰值連線數

      (圖1)中目前活動的連線為1個,自MySQL服務啟動以來,最高連線數為54;當最高連接數接近或等於(圖2)中的max_connections時,應適當增加max_connections,需要注意的是,不要一下子增加過多,建議每次增加50,觀察一段時間,不夠再繼續增加。

2、執行緒快取命中率

      (圖1)中執行緒快取命中率為99.78%,若這個值小於90%,建議適當增加(圖2)的thread_cache_size,建議每次增加8。

3、索引命中率

      (圖1)中索引命中率為99.50%,如果這個值小於95%,建議適當增加(圖2)中的key_buffer_size,建議每次增加64,需要說明的是,若您的資料庫使用的是Innodb引擎,可忽略這個選項

#4、Innodb索引命中率

      (圖1)中Innodb索引命中率為100%,若這個值小於95%,建議適當增加(圖2)中的innodb_buffer_pool_size,建議每次增加64,需要說明的是,若您的資料庫沒有使用Innodb引擎,可忽略這個選項

#5.查詢快取命中率

      MySQL查詢快取是個比較爭議的功能,個人建議當你有在使用redis、memcached等快取軟體時,在(圖2)中將query_cache_size設為0可以將其關閉,當你沒有使用快取軟體,有多餘的記憶體使用,且資料庫瓶頸明顯存在時,可以嘗試開啟查詢緩存,這是個非常依賴資料表結構及SQL語句優化的功能,如果資料表結構和SQL語句都針對查詢快取進行過最佳化,它的效果還是很不錯的。

6、建立臨時表到磁碟

      (圖1)中建立臨時表到磁碟的比例是0.42%,這表示大部分臨時表已經建立到記憶體了,不會過多增加磁碟IO的開銷,建議,當比例大於2%時適當增加(圖1)中的tmp_cache_size,建議每次增加32,當比例大於60%時,放棄吧,有些開源程式並沒有專門優化過SQL語句,所以在運作過程中會開啟大量臨時表,增加多少快取都是不夠用的。

7、已開啟的表格

      當(圖1)中的已開啟的表格接近或等於(圖2)中的table_open_cache時,可以適當增加table_open_cache,但若已設定過大可能導致您的程式頻繁中斷MySQL連接,建議在1024以內,最大不要超過2048。

8、沒有使用索引的量、沒有使用索引的JOIN量

      若不為0,就檢查下資料表索引吧,其實只要沒有瘋漲,例如一天增漲幾千,一般可以忽略,必竟優化索引還是程式設計師或DBA去乾比較適合。

9、排序後的合併次數

      如果這個值在緩慢增張,建議適當增加(圖2)中的sort_buffer_size,建議每次增加512,但最大不要超過8192,如果這個值一直在瘋漲,增加sort_buffer_size也沒用,就放棄這個選項吧,這個鍋子還是給程式開發者背。

10、鎖定表次數

      如果伺服器CPU開銷不大的情況下,瘋狂鎖定表,建議你將所有資料表轉換成innodb,記得轉換前備份哦。

11、最佳化方案

      這個是我們根據記憶體大小給予的一個建議最佳化方案,只是建議只用於基礎參考值,還是要根據實據情況來調整每個配置項。

注意:儲存參數配置後不會立即生效,記得要重新啟動MySQL服務。

以上是如何透過寶塔面板實現MySQL效能簡單調優的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:bt.cn。如有侵權,請聯絡admin@php.cn刪除