匿名通过本文主要向大家介绍了MySQL,Innodb,存储引擎的锁等相关知识,希望本文的分享对您有所帮助
最近碰到很多锁问题,所以解决了后,仔细再去阅读了关于锁的书籍,整理如下:
1,锁的种类
1,锁的种类
Innodb存储引擎实现了如下2种标准的行级锁:
? 共享锁(S lock),允许事务读取一行数据。
? 排它锁(X lock),允许事务删除或者更新一行数据。
当一个事务获取了行r的共享锁,那么另外一个事务也可以立即获取行r的共享锁,因为读取并未改变行r的数据,这种情况就是锁兼容。但是如果有事务想获得行r的排它锁,则它必须等待事务释放行r上的共享锁—这种情况就是锁不兼容,二者兼容性如下表格所示:
排它锁和共享锁的兼容性 | ||
| X 排它锁 | S 共享锁 |
X 排它锁 | 冲突 | 冲突 |
S 共享锁 | 冲突 | 兼容 |