共享锁和排他锁

Mysql默认事务隔离是可重复读,即在一个事务中读取到的数据是一致的,不会被其他操作污染。

 有幻读可能,操作时加锁可以防止。

  1. select 不会受影响,在事务中或者普通执行都可以。
  2. mysql会为update, insert, delete自动加上排他锁。
  3. 事务A共享锁A可以做增删改查,其他事务也可以开共享锁,但是不能开排他锁。所有对锁住的行进行update, deltete 操作受阻。
  4. 事务A排他锁A可以做增删改查,其他事务不能再锁。所有对锁住的行进行update, deltete 操作会出现锁等待
  5. 两个事务使用共享锁,在改动时会第一个出现锁等待,第二个出现死锁并退出事务,同时第一个改动成功,可以commit。

猜你喜欢

转载自www.cnblogs.com/fenle/p/10656994.html