1. 程式人生 > >mysql線程池

mysql線程池

雪崩 線程數 劃分 subscribe blog 沒有 連接線 組成 結束

mysql連接池與線程池
區別
連接池是客戶端進行設置
線程池是db服務端設置

連接池的作用
 控制客戶端頻繁連接DB服務器,和銷毀連接線程

線程池的優勢
 1.防止雪崩
 2.提高性能,提升系統穩定性
架構
 mysql_thread_pool被劃分成一個線程(timer)和多個group,每個group又有對應的工作線程
 timer線程
  控制管理整個group,。。。
 group組成
  兩個高低隊列
  listener
  worker
線程池簡化工作流程
1.客戶端的請求根據threadid%thread_pool_size來決定落到哪個group
2.group中的listener監聽到有新請求,加入隊列或者將其轉換成worker線程
3.group中的thread線程檢查隊列的請求,
 有,處理,沒有,則休眠,一直沒喚醒的話,超過thread_pool_idle_timeout後,則結束線程退出
 當然Group中running線程數超過thread_pool_oversubscribe+1的話,也會休眠
4.timer線程會一直檢查group是否被阻塞,如果有,就喚醒worker線程或者重建

mysql線程池