MySQL锁问题–InnoDB(行锁演练)
(一)MySQL锁问题—MyISAM(表锁)
(二)MySQL锁问题—InnoDB(行锁理论)
本片文章主要是针对上篇关于行锁的演练部分,如果没有阅读行锁理论部分,可以参考行锁理论
行锁分类:
- 共享锁:允许一个事务去读一行,阻止其它事务获得相同数据的排它锁。
命令:select * from table_name where … lock in share mode; - 排它锁:允许获得排它锁的事务更新数据,阻止其它事务取得相同数据集的共享锁和排它锁。
命令:select * from table_name where … for update;
解释:是不是感觉共享锁和排它锁比较抽象,其实用大白话说共享锁就是读锁,排它锁就是写锁;和表所原理差不多,读锁可以多个共存,写锁排斥其它锁,需要等待。只不过表锁和行锁的区别就是一个锁定一行,一个锁定一张表