亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MYSQL怎么發現及處理沒有commit 留下的大麻煩

發布時間:2021-10-25 09:20:25 來源:億速云 閱讀:121 作者:柒染 欄目:大數據

這篇文章給大家介紹MYSQL怎么發現及處理沒有commit 留下的大麻煩,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

其實使用不同的數據庫開發應用程序,本身沒有什么,但開發人員如果不熟悉所使用的數據庫,還沿用自己熟悉數據庫的處理方式來處理新的數據庫,那顯然就會造成很多麻煩,這點對其他職業也是一樣。

今天想說的是,習慣使用ORACLE 的程序員,在MYSQL 留下的麻煩怎么被發現。這兩種數據庫在處理事務上是有不同的,oracle 默認不會自動commit, 而mysql 會默認 auto commit, 說道auto commit ,四大數據庫,只有oracle  一家是不默認commit。

那問題出在哪里,如果當初在程序員使用mysql 上設置了 auto commit 為非自動(線程級別,或global),而后期某些原因,又忘記了,記得MYSQL 本身是默認是 auto commit 那亂子就來了。所以一般都會看看developer 的歷史,如果開發的歷史用沒有使用過mysql 則必然會多留心。

下面有一個例子,系統有一個更新一直過不去,一直報

Lock wait timeout exceeded; try restarting transaction

MYSQL怎么發現及處理沒有commit 留下的大麻煩

哪遇到這樣的問題,會想起什么,怎么處理這個問題。 第一個想法是看看 

show engine innodb stauts

MYSQL怎么發現及處理沒有commit 留下的大麻煩

MYSQL怎么發現及處理沒有commit 留下的大麻煩

看到上面的圖,的反映是什么,有線程霸占某些記錄的row lock 太長時間了,造成其他的session無法操作對應的記錄。  在往深里面想,就有可能是沒有commit 而造成的 session idel 而事務running 的問題。

遇到這樣的問題,需要找出當前那個 session 正在idel 但其實里面的 transaction 在running 的狀態。 

1 找到正在sleep的session

MYSQL怎么發現及處理沒有commit 留下的大麻煩

2 查看耗時較長的session中運行的語句

MYSQL怎么發現及處理沒有commit 留下的大麻煩

通過查看到較長耗時的語句,以及語句的 processlist_id 就可以大致找到當前在作妖的線程ID。

然后kill他就好。

當然還有另外一種情況,就是程序里面由于不嚴謹,導致大批量的begin 但沒有commit, 那這樣用上面的方法就不趕趟了,怎么來更快的發現這樣的問題

MYSQL怎么發現及處理沒有commit 留下的大麻煩

通過上圖的語句,去發現相關的計數器是否一致在瘋狂的上漲,那就證明當前的數據庫系統中存在或可能存在這樣的問題。

關于MYSQL怎么發現及處理沒有commit 留下的大麻煩就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昌乐县| 托里县| 湖北省| 车险| 云浮市| 浪卡子县| 永州市| 佳木斯市| 台南县| 尼玛县| 淅川县| 灵石县| 沽源县| 万盛区| 虎林市| 来凤县| 通海县| 阿瓦提县| 卢氏县| 盐边县| 镇坪县| 林芝县| 临沧市| 汾阳市| 彰化市| 金塔县| 高要市| 宜良县| 岳阳市| 常山县| 贵德县| 麻江县| 叙永县| 伊金霍洛旗| 阳城县| 望谟县| 乌拉特前旗| 涿鹿县| 景德镇市| 五家渠市| 周宁县|