MySQL的show engine innodb status
自己原文公眾號: https://mp.weixin.qq.com/s/WM6L80iYqfQtGAu-uUguIA
談談死鎖。這種好理解也不好理解。說好理解是因為一句話可以概況:相互等待。但是實際發生的確實有時候讓人捉摸不透。
比如A會話執行 B會話執行
1 update t1 set xx where id=1; 2 update t2 set xx where id=2;
3 update t2 set xx where id=2; 4 update t1 set xx where id=1;
1/2/3/4分別表示執行順序。這裡t1和t2可以是兩個表,也可以是一張表。
他會立即彈出檢測到死鎖的字樣。很快。因為無解,所以必須放棄一個。
但是有的時候執行show engine innodb status我們會看到長時間的等待。這裡才十幾秒,其實幾百秒的也有。這是為什麼呢?
那可能是鎖和死鎖都出現了。
假設一種情況:紅色表示執行的先後順序。
1執行了沒有及時提交,導致4堵住了。這樣245這三步都因為4在等待而走不下去,而3在等5,所以35這兩步因為3在等也走不下去了。只要1一旦提交。就可以進入45兩步,這個時候6一旦出現就是最簡單的死鎖。
這個模擬只是我們假設了一種比較簡單的場景模擬鎖和死鎖的混合。實際情況你可以想想只要1的那個步驟再複雜一點,甚至多很多會話,每個事務中不僅僅只有2個簡單的update,那麼複雜度就直線上升。實際情況其實是亂成一團麻,但是萬變不離其宗,原理就這樣。
解決方法還是要執行的快,以及按照相同順序依次執行SQL。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2847122/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL show engine innodb status 詳解MySql
- 【Mysql】show engine innodb status詳解MySql
- show engine innodb status 詳解
- SHOW ENGINE INNODB STATUS資訊詳解
- show engine innodb status操作解析之一
- MySQL:5.6 大事務show engine innodb status故障一例MySql
- 技術分享 | show engine innodb status中Pages flushed up to 的含義
- Innodb: 自動開啟列印show engine status到err日誌
- 使用show engine innodb status 檢視記憶體使用情況記憶體
- Percona 8.0.30中"show engine innodb status"導致coredump排查及分析
- Mysql---show table statusMySql
- MySQL show status 命令詳解MySql
- MySQL SHOW STATUS命令介紹MySql
- mysql檢視儲存過程show procedure status;MySql儲存過程
- [MySQL進階之路][No.0002] SHOW SLAVE STATUSMySql
- MySQL show status命令輸出結果詳解MySql
- MySQL執行狀態show status中文詳解MySql
- SHOW SLAVE STATUS 詳解
- MySQL show status命令常用輸出欄位詳解MySql
- Innodb:為什麼lock in share mode在show engine看不到行鎖資訊
- MySQL:show slave status 關鍵值和MGRrelay log的清理策略MySql
- show master logs 和 show master status 區別AST
- MySQL主從複製中的“show slave status”詳細含義MySql
- mysql 優化:使用show status檢視MySQL伺服器狀態資訊MySql優化伺服器
- 初觸hibernate01--MYSQL建表時type=InnoDB和Engine=InnoDB注意點MySql
- mysql學習之-show table status(獲取表的資訊)引數說明MySql
- MySQL show status關鍵結果釋義和提升效能建議MySql
- 監控innodb status指標指標
- [原創] How to show chinese character in Git StatusGit
- mysql的show processlistMySql
- MySQL中的show命令MySql
- mysql show命令MySql
- 轉載:mysql的show processlistMySql
- mysql show processlist stateMySql
- 【MySQL】SHOW WARNINGS和SHOW ERRORS的作用是什麼?MySqlError
- MySQL Show命令的用法大全MySql
- MySQL 5.5 SHOW PROFILE、SHOW PROFILES語句介紹MySql
- MYSQL TABLE CHANGE STORAGE ENGINEMySql