1. 程式人生 > >連線數從異常到 300 到 5(RDS MySQL 的一個大坑•後記)

連線數從異常到 300 到 5(RDS MySQL 的一個大坑•後記)

在 [《記 RDS MySQL 的一個大坑》](https://www.cnblogs.com/ittranslator/p/14094449.html) 中,我提到遇到 User juxxxxxxxxxx already has more than 'max_user_connections' active connections…… 這樣的錯誤,最終通過在迴圈中使用 `Thread.Sleep`,降低 CRUD 操作的頻率,讓連線數下降至不到原來的一半,從而解決了這個棘手的問題,有興趣的朋友可以[點選連結回顧一下](https://www.cnblogs.com/ittranslator/p/14094449.html)。 今天又看了一下新增 `Thread.Sleep` 後,程式執行時的 IOPS 和 連線數: ![iops-connections-3](https://img2020.cnblogs.com/blog/2074831/202012/2074831-20201209031922573-1876216947.png#center) 執行結果:**連線數:300,執行時間:68 分鐘,IOPS:7**。 昨天在[部落格園中發出上篇文章](https://www.cnblogs.com/ittranslator/p/14094449.html)後,熱心的朋友([@沈贇](https://www.cnblogs.com/ittranslator/p/14094449.html#4766142),[@不知道風往哪兒吹](https://www.cnblogs.com/ittranslator/p/14094449.html#4766160))對此問題提出了寶貴的意見和想法,激發了我對此問題繼續深究的決定。 下午經過幾個小時的分析和測試,終於找到了該問題的真正原因和更好的解決方法,在此做個補充。 **真正的原因在於:使用 MySQL 官方提供的 MySql.Data 作為驅動程式連線 MySQL 資料庫的時候,預設使用了連線池,才引發了這個問題**。錯怪了*阿里雲(上篇中提到懷疑阿里雲改了 MySQL 底層做了限制)*,在此對自己的不嚴謹表示誠懇的道歉