91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

MYSQL LOCKS監控的詳細介紹

發布時間:2021-09-16 10:50:40 來源:億速云 閱讀:179 作者:chen 欄目:大數據

這篇文章主要講解了“MYSQL LOCKS監控的詳細介紹”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“MYSQL LOCKS監控的詳細介紹”吧!

MYSQL 性能問題中,一定包含 LOCKS 的問題,我想沒人反對,但如何監控他,其實說句實話,沒有看到特別多的好的解決方法。有兩個極端,一個是本身在MYSQL上的程序本身基礎打得好,所以MYSQL 基本上很少有DEAD LOCKS , 另外一個,恐怕是根本使用MYSQL的人就不知道怎么監控DEAD LOCK ,所以沒有意識到這個問題。

首先死鎖的檢測默認是被打開的,并且INNODB 是自動的檢測事務的私說,自動的會館或者自動終結私說,innodb會嘗試選擇較小的事務去進行roll back,根據 DML操作中的事務的尺寸來進行判斷。

相對來說如果你的 innodb_table_locks  = 1  并且autocommit = 0的情況下,那解決私說的問題就只能動用 innodb_lock_wait_timeout 這個參數了,或祈求GOD help.

當然如果你關閉了innodb_deadlock_detect 這個參數,那你的死鎖也是無法被檢測到的,另外 innodb_lock_wait_timeout 這個參數的設置,就可以看出掌握這個數據庫系統的人員是否老道。

死鎖的成因如果解釋起來,簡單的解釋就是  session a  掌握了資源 a ,但在處理事務的時候,不光需要a ,還需要資源b, 而 session b  掌握了資源b,而處理時不光需要b ,還需要a, 但不幸的是,在同一個時間,session 掌握了a ,去提取b , 而 session b 掌握了b 去提取a ,也不知道是 session a 最后拿到了 資源b 而解鎖,還是session b 拿到了 a而解鎖,最后MYSQL系統滴滴答答吹喇叭。 好吧不要打我,最后的結果就是一個事務被回滾,系統記錄錯誤信息。

所以監控dead locks 或 locks 其實是很重要的一件事

1 你知道那個語句和那個語句發生了死鎖

2 你知道是否有挽救的可能性

如果入行久了,馬上的反映就是 show engine innodb status 去查看死鎖,是這就是mysql 5.x (5.6之前)的方法, 并且很好用。(不知道,那你還是百度一下吧)。

現在進行LOCKS(不光是死鎖,包括類似blocked 的信息)的監控,一般都需要使用 performance_schema來進行,(什么性能損失,你是有多缺錢,多加一點CPU, 內存你會死嗎,浪費5% -10%的性能,換你老板問你為什么的時候,你能痛快的寫出報告,還是只能瞎編,你自己看著辦)。

怎么做,很多種方法,我們先來說說傳統的方法

1 innodb_print_all_deadlocks 

這個參數你要打開喲,否則你真的只能傻乎乎去看 show engine innodb sttatus , 并且如果發生很多死鎖,那你會遺漏的信息會很多。同時打開這個參數還可以在ERROR log 中看到相關的所有的死鎖信息。

2 確認你的wait/lock/metadata/sql/mdl 要打開, 然后你就可以去查看

你的metadata_locks 表,當然如果你還知道 threads,那你可以聯合這兩個tables 來將那兩個語句之間進行了,那個session 和 那個session之間的矛盾,以及相關的語句會一目了然。

SELECT

    performance_schema.threads.PROCESSLIST_ID,

    performance_schema.metadata_locks.*

FROM

performance_schema.threads,

    performance_schema.metadata_locks

WHERE

performance_schema.threads.THREAD_ID =performance_schema.metadata_locks.OWNER_THREAD_ID;

3 PT 工具 或者自己寫一個腳本,來自動記錄可能發生的死鎖。

例如我們可以通過 pt-deadlock-logger 來進行相關的死鎖鑒定

4 動態的查看innodb的 deadlock 數,可以進行動態的監控,尤其在新上項目后,或者硬件變動后可以第一時間發現問題。當然你需要先將 innodb_locks  和 innodb_lock_waits 這兩個表搞搞清楚

感謝各位的閱讀,以上就是“MYSQL LOCKS監控的詳細介紹”的內容了,經過本文的學習后,相信大家對MYSQL LOCKS監控的詳細介紹這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

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

AI

广州市| 溧水县| 武邑县| 正定县| 元谋县| 隆安县| 大渡口区| 泽库县| 昌邑市| 马关县| 镇巴县| 蒙阴县| 荥阳市| 安图县| 苍南县| 石泉县| 大姚县| 平泉县| 湘西| 莎车县| 铁岭市| 仁寿县| 山阴县| 玛多县| 赫章县| 东港市| 武宣县| 丁青县| 天峨县| 湟中县| 朝阳县| 怀宁县| 登封市| 邵东县| 汝州市| 松溪县| 谷城县| 青海省| 遂川县| 和顺县| 长沙县|