談談高並發情況下MySQL最大連接數優化思路!

談談高併發情況下MySQL最大連接數優化思路!

問題描述:日常開發中,相信不少人肯定都遇到過都會遇見”MySQL: ERROR 1040: Too many connections”的異常情況。

談談高併發情況下MySQL最大連接數優化思路!

問題分析:實際使用中,造成這種情況可能確實是訪問量過高了,這就需要加機器;但是大多數時候是可以優化,網上很多介紹的是修改MySQL配置文件裡的max_connections和wait_timeout參數,這確實是個問題。但是,一般DBA會處理這些問題,很多時候反而是業務層面的不合理造成的。

那麼,怎麼就解決這些問題呢?

首先,我們來查看MySQL的最大連接數:

談談高併發情況下MySQL最大連接數優化思路!

如果是連接數太小了,可以適當修改一下,超時時間太長的話同樣直接改小就行。

其次,用戶增長太猛,這個時候就需要添加機器了。

但是這些都不是今天要提的重點,我們今天要講的是業務層優化的一些實戰。

一、過度依賴數據庫

首先,數據庫並不是萬能,不要把各位運算和數據都存放進去,儘量減小數據壓力;其次,合理使用緩存,例如Memcache和Redis,我們都知道二八定律,它同樣適用於互聯網,百分之八十的請求最終落在百分之二十的業務上,所以能不查詢數據庫的時候儘量不要去找數據庫。

二、謹慎使用長鏈接

很多時候是不需要使用長連接的,特別在一些網站中(比如PHP中mysql_pconnect),短連接能解決的問題就用短連接,長連接有可能導致大量連接得不到釋放無法使用。

三、優化慢SQL

慢SQL可以說是影響網站性能的毒瘤,SQL越快,連接佔用的時間就越短。

最後,祝大家新年快樂,工作順利!


分享到:


相關文章: