首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 連接數監控與 max_connections 合理設置

     編輯:MySQL 綜合教學

關鍵狀態變量

SHOW GLOBAL STATUS LIKE 'Thread%';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| Threads_connected | 107   |  -- 當前活躍連接
| Threads_running   | 104   |  -- 正在執行查詢的連接
| Threads_created   | 3252  |  -- 歷史累計創建線程數
| Threads_cached    | 0     |  -- 當前緩存閒置線程
+-------------------+-------+

配置參數對比

SHOW VARIABLES LIKE 'max_connections';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 2000  |  -- 允許上限
+-----------------+-------+

健康度判斷公式

理想值:Max_used_connections / max_connections ≈ 85%

  • > 90%:接近上限,需擴容或優化應用連接池
  • < 10%:max_connections 設置過大,浪費內存(每連接預分配緩存)
  • Threads_created 快速增長:thread_cache_size 過小,建議設 32-64

連接報錯 "Too many connections" 排查

  1. 確認是否真高併發:SHOW GLOBAL STATUS LIKE 'Max_used_connections';
  2. 檢查應用連接池配置(未釋放、池大小超限)
  3. 檢查慢查詢導致連接堆積
  4. 臨時調大:SET GLOBAL max_connections=3000;(重啟失效,需改配置文件)

建議配置模板

[mysqld]
max_connections = 3000
thread_cache_size = 64
max_connect_errors = 100000
wait_timeout = 600          # 空閒 10 分鐘斷開
interactive_timeout = 600
# 連接池建議:應用層配置 100-200,避免頻繁創建銷毀
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved