MYSQL删除不存在的数据造成死锁.docx
《MYSQL删除不存在的数据造成死锁.docx》由会员分享,可在线阅读,更多相关《MYSQL删除不存在的数据造成死锁.docx(5页珍藏版)》请在第一文库网上搜索。
1、删除不存在的数据造成死锁笫34章介绍了如何查看死锁日志,但案例中死锁的场景还是很简单的,属于教科书版本的死锁。本章将通过一个案例来加深读者对RR隔离级别下加锁规则的理解,阅读死锁日志,能够将理论知识运用到实际中。问题现象不管是开发人员还是DBA, 一定都听说过不建议使用RR (REPEATABLE-READ)隔离级别这个规范。如果你是开发人员,问DBA为何这样做?可能得到的答案是:容易产生死锁,或者容易产生锁等待。在MySQL中RR隔离级别下的GAP锁确实是一个很容易,踩坑”的地方,如果不了解GAP锁的机制,就很容易造成锁等待或者死锁,本章我们就来分析一个删除不存在的数据造成死锁的案例,通过这
2、个案例让大家更深入地了解在RR隔离级别下为何会容易造成锁等待或者死锁。大家可能很难理解删除不存在的数据是如何造成死锁的,下面我们一起来分析,先看一下复现后的死锁日志:(1) TRANSACTION:TRANSACTION 2*7685, ACTIVE 43 sec insertingmysql tables in use 1, locked 1LOCK WAIT 3 lock struct (s) 9 heap size 1200, 2 row lock (s)MySQL thread id 81z OS thread handle 123145529880576, query id 4475
3、 localhost root updateINSERT INTO tl VALUES (2)* (1) WAITING FOR THIS LOCK TO BE GRANTED:RECORD LOCKS space id 39 page no 4 n bits 72 index PRIMARY of table *dhy.tl trx id27685 lock_mode X locks gap before rec insert intention waitingRecord lock, heap no 3 PHYSICAL RECORD: n_fields 3; compact format
4、; info bits 00: len 4; hex 00000005; asc;1: len 6; hex 000000006clb; asc 1 ;2: len 7; hex 01000000elll33; asc 3; (2) TRANSACTION:TRANSACTION 27686, ACTIVE 28 sec insertingmysql tables in use 1, locked 13 lock struct(s)r heap size 1200, 2 row lock(s)MySQL thread id 82, OS thread handle 12314552897126
5、4, query id 4476 localhost root updateINSERT INTO tl VALUES (4)* (2) HOLDS THE LOCK(S):RECORD LOCKS space id 39 page no 4 n bits 72 index PRIMARY of table dhy.tl trx id27686 lock_mode X locks gap before recRecord lock/ heap no 3 PHYSICAL RECORD: n_fields 3; compact format; info bits 00: len 4; hex 0
6、0000005; asc ;1: len 6; hex 000000006clb; asc 1 ;2: len 7; hex 01000000elll33; asc 3;* (2) WAITING FOR THIS LOCK TO BE GRANTED:RECORD LOCKS space id 39 page no 4 n bits 72 index PRIMARY of table dhyw.trx id27686 lock_mode X locks gap before rec Insert intention waitingRecord lock, heap no 3 PHYSICAL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MYSQL 删除 不存在 数据 造成 死锁