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

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

应用场景:

共享锁:对一张表的数据行加锁,避免改动和删除,对其关联表进行insert等操作。确保两张表的业务一致。

排他锁:确保一张表的数据一致性。

posted on 2019-04-04 20:41  jzfan  阅读(158)  评论(0编辑  收藏  举报