数据库事务四大特性、隔离级别

【以转账为例】

事务

事务是指满足ACID的一组操作,可以通过Commit提交一个事务,也可以使用Rollback进行回滚。

ACID

1.原子性(Atomicity)

事务被视为不可分割的最小单元,事务的所有操作要么全部提交成功,要么全部失败回滚。

2.一致性(Consisitency)

数据库在事务执行前后都保持一致性状态。即转账前后,两个人账户总金额不变。

3.隔离性(Isolation)

根据隔离级别,一个事物所作的修改对于其他事务来说是不确定的。

4.持久性(Durability)

一旦事务提交,则其所作的修改将会永远保存到数据库中。

隔离级别

mysql默认的隔离级别是可重复读。

下面的代码所运行的两个事务需要在两个不同的session中执行,开启两个客户端。

1.读未提交 READ UNCOMMITTED

读未提交:事务中的修改,即使没有提交,对其他事务也是可见的。

事务1:

1 set session transaction isolation level read uncommitted; 2 3 start transaction; 4 update user set money = money - 100 where id = 1; 5 update user set money = money + 100 where id = 2; 6 commit;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgwjfx.html