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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- show engine innodb status操作解析之一
- MySQL:5.6 大事務show engine innodb status故障一例MySql
- show engine innodb status 輸出結果解讀
- 技術分享 | show engine innodb status中Pages flushed up to 的含義
- Percona 8.0.30中"show engine innodb status"導致coredump排查及分析
- 使用show engine innodb status 檢視記憶體使用情況記憶體
- Innodb: 自動開啟列印show engine status到err日誌
- MySQL show status 命令詳解MySql
- [MySQL進階之路][No.0002] SHOW SLAVE STATUSMySql
- mysql檢視儲存過程show procedure status;MySql儲存過程
- MySQL:show slave status 關鍵值和MGRrelay log的清理策略MySql
- MySQL主從複製中的“show slave status”詳細含義MySql
- Innodb:為什麼lock in share mode在show engine看不到行鎖資訊
- [原創] How to show chinese character in Git StatusGit
- MySQL 之 show processlist 神器MySql
- MySQL:show processlist Time負數的思考MySql
- MySQL InnoDB 索引MySql索引
- MySQL Deadlocks in InnoDBMySql
- MySQL 索引 效能分析 show profilesMySql索引
- MySQL show processlist故障處理MySql
- 探索MySQL的InnoDB索引失效MySql索引
- mysql innodb索引高度MySql索引
- MySQL InnoDB update流程MySql
- MySQL高階知識——Show ProfileMySql
- MySQL InnoDB的索引擴充套件MySql索引套件
- MySQL InnoDB 中的鎖機制MySql
- MySQL InnoDB搜尋索引的StopwordsMySql索引
- MySQL 5.7 InnoDB Tablespace EncryptionMySql
- MySQL InnoDB儲存引擎MySql儲存引擎
- MySQL InnoDB髒頁管理MySql
- MySQL InnoDB緩衝池MySql
- Mysql innodb引擎(二)鎖MySql
- MySQL8 show processlist 最佳化MySql
- MySQL:Innodb:innodb_flush_log_at_trx_commit引數影響的位置MySqlMIT
- 【Mysql】InnoDB 中的 B+ 樹索引MySql索引
- 【Mysql】InnoDB 引擎中的頁目錄MySql
- Mysql 中 MyISAM 和 InnoDB 的區別MySql
- MySQL探祕(八):InnoDB的事務MySql