事务基础

1.什么是事务

  一件事情有n个组成单元,要么这n个组成单元同时成功,要么同时失败

2.事务的特性(ACID)

  1)原子性:原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生

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

  3)隔离性:是指多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰。多个并发事务之间数据要相互隔离

  4)持久性:是指事务一旦被提交,它对数据库中数据的改变是永久性的。

3.并发访问-----由隔离性引起

  如果不考虑隔离性,事务存在3种并发访问问题

    1)脏读:B事务读取到了A事务尚未提交的数据

    2)不可重复读:一个事务中两次读取数据的内容不一致

    3)幻读/虚读:一个事务中两次读取数据的数量不一致

4.事务的隔离级别

  1)read uncommitted:读取尚未提交的数据------哪个问题都不能解决

  2)read committed:读取已提交的数据-----可以解决脏读-----Oracle默认的

  3)repeatable read:重复读取---可以解决脏读和不可重复读------MySQL默认的

  4)serializable:串行化---可以解决脏读和不可重复读、虚读

原文地址:https://www.cnblogs.com/Life-is-Demo/p/11619550.html