事务的ACID属性和隔离级别

事务的ACID属性

<1>原子性

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

<2>一致性

一致性是指,事务必然从一个一致性状态转换到另一个一致性状态

<3>隔离性

事务的隔离性是指,一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的

其他事务是隔离的,并发执行的各个事务之间不能互相干扰

<4>持久性

持久性是指,事务一旦提交,他对数据库的改变就是持久性的,接下来的操作对这个事务不会有任何影响

数据库的并发问题

<1>脏读

脏读:对于两个事务T1,T2, T1读取了已经被T2更新但是还没有提交的内容,当T2回滚以后,T1读到的数据就是无效的了

不可重复读:对于两个事务T1, T2,T1读取了一个字段,然后这个字段被T2更新了,之后T1再读取这个字段,这个字段就不同了。

幻读:对于两个事务T1, T2,T1从字段中读取了一行数据,然后T2在表中插入了一些新的行,之后,如果T1再读取这个表,就会发现多了一些行

remark后面两种情况我们有时会认为是正常的,所以有时就不对其进行处理,只处理脏读问题

事务的几种隔离级别

在这里插入图片描述

REPEATABLE READ: 能够解决前面两个问题,使用这个隔离级别的话,在连接还没有断开之前,T1读取到的字段都是T2提交更新前的字段

Mysql 命令行验证事务的隔离级别

查看当前的事务隔离级别:
select @@tx_isolation;

设置当前连接的隔离级别:
set transaction isolation level read commited;

设置数据库的全局隔离级别:
set global transaction isolation level read commited;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值