数据库事务四种隔离级别的加锁机制

数据库事务四种隔离级别的加锁机制

  1. 未提交读:实现方式为:写事务时加行级共享锁,读事务不加锁;因此会出现脏读(由于是共享锁,写事务未提交前其他事务仍然能读)。
  2. 提交读:针对未提交读导致的脏读问题,提交读的实现方式增强为:写事务时加行级排他锁,事务结束才释放;读事务加行级共享锁,但是读完立即释放锁,而不是事务结束释放。因此造成的问题是不可重复读(读事务第一次读取数据结束后释放共享锁,此时其他事务可以更新数据,该事务第二次读取数据时发现与第一次数据值不同)。
  3. 可重复读:实现方式增强为:读事务和写事务加的锁都持续到事务结束才释放。仍然存在的问题是幻读(读或写事务只是对其所读的行加了行级锁,此时其他事务虽然不能更改这些行,但是能添加新行,因此出现幻读现象)。
  4. 序列化:实现方式增强为:读写事务加表级锁,这是就可以避免其他事务对该表格的任务操作。

你可能感兴趣的:(数据库)