数据库隔离级别由高到低,可分为4个等级:

  • 串行化
  • 可重复读
  • 读已提交
  • 读未提交

数据库通过使用不同的锁粒度来实现不同的隔离等级:

  • 串行化:最高的隔离强度,通过对数据库事务全程添加读锁写锁范围锁来实现;
  • 可重复读:仍对读、写操作添加读锁和写锁,但不添加范围锁,因此会存在幻读的问题;
  • 读已提交:对写事务全程添加写锁。对于读事务,完成查询后就释放读锁(而不像上两个级别,持有锁到整个事务结束),因此会产生不可重复读问题;
  • 读未提交:只对写事务加锁,完全不加读锁,因此会出现脏读问题。