| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -234,7 +234,7 @@ InnoDB 实现了标准的行级锁,包括两种:共享锁(简称 s 锁) | |||
| 234 | 234 | ||
| 235 | 235 | InnoDB存储引擎中锁的兼容性如下表: | |
| 236 | 236 | 兼容性 | IS | IX| S | X | |
| 237 | - - | :-: | :-: | :-: | :-: | ||
| 237 | + -----| -----|----- |----- |----- | ||
| 238 | 238 | IS | 兼容 | 兼容 | 兼容| 不兼容| | |
| 239 | 239 | IX | 兼容| 兼容 | 不兼容 | 不兼容| | |
| 240 | 240 | S | 兼容|不兼容|兼容 | 不兼容| | |
@@ -351,12 +351,12 @@ update weight=weight+1; // 第四步 | |||
| 351 | 351 | 4.最后,**事务1回滚(rollback),释放插入意向锁,导致事务2,3同时持有gap锁,等待insert intention锁,死锁形成**! | |
| 352 | 352 | ||
| 353 | 353 | **锁模式兼容矩阵**(横向是已持有锁,纵向是正在请求的锁): | |
| 354 | - 兼容性 | Gap | Insert Intention| Record | Next-Key | ||
| 355 | - - | :-: | :-: | :-: | :-: | ||
| 356 | - Gap | 兼容 | 兼容 | 兼容| 兼容| | ||
| 357 | - Insert Intention | 冲突| 兼容 | 兼容 | 冲突| | ||
| 358 | - Record | 兼容|兼容|冲突 | 冲突| | ||
| 359 | - Next-Key | 兼容| 兼容 | 冲突 | 冲突| | ||
| 354 | + |兼容性 | Gap | Insert Intention| Record | Next-Key| | ||
| 355 | + |-----| -----|-----| -----| -----| | ||
| 356 | + | Gap | 兼容 | 兼容 | 兼容| 兼容| | ||
| 357 | + | Insert Intention | 冲突| 兼容 | 兼容 | 冲突| | ||
| 358 | + | Record | 兼容|兼容|冲突 | 冲突| | ||
| 359 | + | Next-Key | 兼容| 兼容 | 冲突 | 冲突| | ||
| 360 | 360 | ||
| 361 | 361 | [这是MySql5.7的一个bug](https://bugs.mysql.com/bug.php?id=52020) | |
| 362 | 362 | ||
@@ -388,15 +388,6 @@ gap锁跟索引有关,并且unique key 和foreign key会引起额外的index | |||
| 388 | 388 | - 4.分析死锁日志(持有什么锁,等待什么锁) | |
| 389 | 389 | - 5.熟悉锁模式兼容矩阵,InnoDB存储引擎中锁的兼容性矩阵。 | |
| 390 | 390 | ||
| 391 | - ## 参考与感谢 | ||
| 392 | - - [一条Insert on duplicate引发的血案](https://zhuanlan.zhihu.com/p/29349080) | ||
| 393 | - - [读 MySQL 源码再看 INSERT 加锁流程 ](https://www.aneasystone.com/archives/2018/06/insert-locks-via-mysql-source-code.html) | ||
| 394 | - - [解决死锁之路 - 了解常见的锁类型 ]( https://www.aneasystone.com/archives/2017/11/solving-dead-locks-two.html) | ||
| 395 | - - [MySQL InnoDB 锁——官方文档](https://segmentfault.com/a/1190000014071758) | ||
| 396 | - - [MySQL的锁机制 - 记录锁、间隙锁、临键锁](https://zhuanlan.zhihu.com/p/48269420) | ||
| 397 | - - [解决死锁之路 - 常见 SQL 语句的加锁分析 ](https://www.aneasystone.com/archives/2017/12/solving-dead-locks-three.html) | ||
| 398 | - - 《MySQL技术内幕》 | ||
| 399 | - | ||
| 400 | 391 | ||
| 401 | 392 | ## 个人公众号 | |
| 402 | 393 | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments