Mysql事务

事务

事务是指逻辑上的一组操作或者一组SQL语句的集合,组成这组操作的各个单元,要么全部成功,要么全部失败

事务的四大特性(ACID):

  1.原子性(atomicity):一个事务必须视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部发生要么全部不发生,不可能只执行其中的一部分操作,这就是事务的原子性。

  2.一致性(consistency):数据库总数从一个一致性的状态转换到另一个一致性的状态,比如无论a给b怎么转账或b转a,两个人最后的金额加起来==没转账前的总金额。

  3.隔离性(isolation):事务的隔离性是多个用户并发访问数据库时,数据可为每个用户开启事务多个并发事务之间相互隔离,一个事务所做的修改在最终提交以前,对其他事务是不可见的。

  4.持久性(durability):一旦事务提交,则其所做的修改就会永久保存到数据库中。此时即使系统崩溃,修改的数据也不会丢失,因为数据已经保存在硬盘中了。

  

事务隔离级别

并发事务处理会带来的问题

赃读:指一个事务读取了另一个事务未提交的数据。 

不可重复读:在一个事务内读取表中的某一行数据,多次读取结果不同。一个事务读取到了另一个事务修改后的数据。(update) 

幻读:是指在一个事务内读取到了别的事务插入的数据,导致前后读取不一致。 (insert)

数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。

数据库通过设置事务的隔离级别防止以上情况的发生: 

* 1、Read uncommitted赃读不可重复读幻读 

* 2、Read committed:不可重复读幻读 

* 4、Repeatable read:幻读(mysql默认) 

* 8、Serializable:可序列化 

级别越高,性能越低,数据越安全。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值