日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql sleep连接过多的完美解决办法

發布時間:2025/3/16 数据库 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql sleep连接过多的完美解决办法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

睡眠連接過多,會對mysql服務器造成什么影響?

?

嚴重消耗mysql服務器資源(主要是cpu, 內存),并可能導致mysql崩潰。

?

造成睡眠連接過多的原因?

?

1. 使用了太多持久連接(個人覺得,在高并發系統中,不適合使用持久連接)

2. 程序中,沒有及時關閉mysql連接

3. 數據庫查詢不夠優化,過度耗時。

?

那么,如果要從根本上解決sleep連接過多,就得從以上三點反復檢查,但是見效并不快。

?

網上有人分享,使用shell腳本配合cron,定期殺死睡眠時間太久的連接,但是這種方法非常不可取,典型的以暴制暴,很可能導致數據崩潰,而且,還需要編寫相應shell, 設置cron, 實施成本較繁瑣,不推薦使用。

?

那么更好的辦法應該是讓mysql自己決定這些睡眠連接的命運,實施會更簡單,有效。

mysql的配置文件中,有一項:

wait_timeout, 即可設置睡眠連接超時秒數,如果某個連接超時,會被mysql自然終止,多好的辦法!

?

如設置: 

wait_timeout=100 #即設置mysql連接睡眠時間為100秒,任何sleep連接睡眠時間若超過100秒,將會被mysql服務自然終止,要比編寫shell腳本更簡單。

?

那么,對于正在運行中的生產服務器,在不能停止服務情況下,修改此項怎么辦?很簡單,以root用戶登錄到mysql,執行:

?

set global wait_timeout=100

?

即可。

?

?

在我的生產環境中,使用這個辦法,取得了相當好的效果。

?

當然,更根本的方法,還是從以上三點排查之:

1. 程序中,不使用持久鏈接,即使用mysql_connect而不是pconnect。

2.?? 程序執行完畢,應該顯式調用mysql_close

3. 只能逐步分析系統的SQL查詢,找到查詢過慢的SQL,優化之


總結

以上是生活随笔為你收集整理的mysql sleep连接过多的完美解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。