数据库事务

特性:

  原子性:同一个事务中要么都成功,要么都失败

  隔离性:并发操作时,多个事务之间要进行隔离,互不干扰

  一致性:事务前后的数据完整性必须保持一致

  持久性:事务提交后,不可回滚

不考虑隔离性会发生以下情况:

  脏读:一个事务读取到另一个事务未提交的数据

  不可重复读:一个事务中两次查询结果不一致(update操作下存在)

  虚读:一个事务中两次查询结果不一致(insert操作下存在)

通过设置隔离级别可以解决以下问题

  读未提交:级别最低,会出现上述集中情况

  读已提交:可以避免脏读,oracle数据库默认级别

  可重复读:可以避免脏读、不可重复读,mysql默认隔离级别

  串行化:可以避免脏读,不可重复读,虚读(建议使用)

原文地址:https://www.cnblogs.com/jwdd/p/10823696.html