Mysql数据库的隔离级别及其区别

ACID

原子性

要不全部成功,要不全部失败

一致性

​ 我们的操作对数据库来说是从一个一致性状态编程另外一个一致性状态,不会出现说中间状态不一致的情况

隔离性

我们并行执行的事务之间必须是相互隔离的不能够相互干扰的

持续性

如果事务一旦提交,那么他对数据库的修改是永久性的。

如果 A 向 B 转账,先把 A 的钱扣掉,在把 B 的钱增加,那么这个时候它是一个完整的事务。不可能出现 A 的钱扣掉,B

没有收到钱的情况。那我们认为它是不一致的。在事务里边,它是必须要满足一致性。

​当我们的系统故障导致的一些问题,它的执行结果它是不会收到任何影响的。这是事务的四个特性

事务并发问题

脏读

​事务 A 读取了 事务 B 提交的数据,但是事务 B 回滚了。

在这里插入图片描述

不可重复度

事务A在多次读取同一条数据的时候,如果事务 B 在事务 A 读取数据的过程中对数据做了一个过呢更新,并且提交,导致 A多次读取的结果是不一致的,

在这里插入图片描述

幻读

事务在并发访问执行的情况下,它会有一个事务并发的问题,

幻读1

在这里插入图片描述

幻读2

在这里插入图片描述

不可重复读和幻读有相似的点,

不可重复度侧重的是修改

幻读侧重的是新增和删除

SQL 的标准定义了四种隔离级别

限定了事务的操作哪些情况下是可见的,哪些情况下是不可见的。我们通过约束解决我们所存在的问题。

隔离级别

​就像我们讲过的,栅栏、屏障,隔离就是隔离开我们事务的影响

​ 隔离级别越高的话,安全性越高,但是它的并发行越低,如果反之的话,并发行越高,数据安全性越低。

以 Mysql 为例四种隔离级别

read uncommitted

读取未提交的数据(脏读,很少使用)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值