5.MySql种的事务 以及 MVCC

一、为什么需要事务

事务是数据库管理系统(DBMS)执行过程种的一个逻辑单位(不可再进行分割),由一个有限的数据库操作序列构成(多个DML语句,select 语句不包含事务),要么全部成功,要么都不成功。

例如:
A给B转账,A的账户-1000元,B的账号就要+1000元,这两个update语句必须作为一个整体来执行。不然A扣钱了,B没有加钱这种情况就是错误的。那么事务就可以保证A、B账户的变动,要么全部一起发生,要么全部都不发生。

1.1 事务特性

  1. 原子性(atomicity)
  2. 一致性(consistency)
  3. 隔离性(isolation)
  4. 持久性(durability)

这四个属性通常被称为 ACID特性。

下面我们来说一说这四个特性,我们用这个例子来说明:

张三转账给李四 100元:

  • 张三的账户扣减100元
  • 李四的账户增加100元

1.1.1 原子性

一个事务必须被视为 一个不可分割的最小单元,整个事务种的所有操作要么全部提交成功,要么全部提交失败,对于一个事务来说,不能只执行其中的一部分操作。

整个事务的操作要么全部都成功,要么全部都失败,不能出现张三扣减成功,但是李四的账户不增加的情况。 原子性不能保证,就会出现一致性问题。

1.1.2 一致性

一致性是指事务将数据库从一种一致

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