1. 程式人生 > >Mysql 檢視連線數,狀態 最大併發數 && 怎麼設定才合理

Mysql 檢視連線數,狀態 最大併發數 && 怎麼設定才合理

show status like '%max_connections%'; ##mysql最大連線數
set global max_connections=1000 ##重新設定


show variables like '%max_connections%'; ##查詢資料庫當前設定的最大連線數 show global status like 'Max_used_connections'; ##伺服器響應的最大連線數 show status like 'Threads%'; Variable_name Value Threads_cached 0 ##mysql管理的執行緒池中還有多少可以被複用的資源 Threads_connected 152 ##開啟的連線數 Threads_created 550 ##表示建立過的執行緒數,如果發現Threads_created值過大的話,表明MySQL伺服器一直在建立執行緒,這也是比較耗資源,可以適當增加配置檔案中thread_cache_size值,查詢伺服器 Threads_running 1 ##啟用的連線數,這個數值一般遠低於connected數值,準確的來說,Threads_running是代表當前併發數 show variables like 'thread_cache_size'; set global thread_cache_size=60;



MySQL伺服器的連線數並不是要達到最大的100%為好,還是要具體問題具體分析,下面就對MySQL伺服器最大連線數的合理設定進行了詳盡的分析,供您參考。  

我們經常會遇見“MySQL: ERROR 1040: Too many connections”的情況,一種是訪問量確實很高,MySQL伺服器抗不住,這個時候就要考慮增加從伺服器分散讀壓力,

另外一種情況是MySQL配 置檔案中max_connections值過小:   

mysql> show variables like 'max_connections';

+-----------------+-------+

| Variable_name | Value |

+-----------------+-------+

| max_connections | 256 | +

-----------------+-------+   

這臺MySQL伺服器最大連線數是256,然後查詢一下伺服器響應的最大連線數:   

mysql> show global status like 'Max_used_connections';   

MySQL伺服器過去的最大連線數是245,沒有達到伺服器連線數上限256,應該沒有出現1040錯誤,比較理想的設定是:   Max_used_connections / max_connections * 100% ≈ 85%   

最大連線數占上限連線數的85%左右,如果發現比例在10%以下,MySQL伺服器連線上線就設定得過高了。

----------------------------------------------------------------------------------------------------

https://cloud.tencent.com/developer/article/1081708

如果遇見“MySQL:ERROR 1040:Too manyconnec-tions”的情況

一種情況是訪問量確實很高,MySQL伺服器抗不住,這個時候就要考慮增加從伺服器分散讀壓力了

另外一種情況是MySQL配置檔案中max_connections的值過小

來看一個例子:

(1)檢視下MySQL配置的最大連線數

mysql> show variables like 'max_connections';

這臺MySQL伺服器的最大連線數是100

(2)查詢一下該伺服器曾經響應過的最大連線數:

mysql> show global status like 'Max_used_connections';

實際中出現過的最大連線數是68,沒有達到上限100,應該不會出現1040錯誤

連線數理想的設定是:

Max_used_connections / max_connections * 100% ≈ 85%

即最大連線數占上限連線數的85%左右