MySQL事务

一、数据库事务遵循 ACID原则

原子性(Atomicity)
原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。

一致性(Consistency)
一致性是指事务必须使数据库从一个一致的状态变到另外一个一致的状态,
也就是执行事务之前和之后的状态都必须处于一致的状态。

隔离性(Isolation)
隔离性是指当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,
不能被其他事务的操作所干扰,多个并发事务之间要相互隔离

持久性(Durability)
持久性是指一个事务一旦被提交了,那么对于数据库中的数据改变就是永久性的,

即便是在数据库系统遭遇到故障的情况下也不会丢失提交事务的操作。

二、事务可能引起的问题

脏读(Dirty Read)
一个事务处理过程里读取了另一个未提交的事务中的数据

不可重复读(NonRepeatable Read)
对于数据库中的某个数据,一个事务范围内多次查询却返回了不同的数据值,
这是由于在查询的间隔期间,另外一个事务修改并提交了该数据

幻读(Phantom Read)
在一个事务中读取到了别的事务插入的数据,导致前后不一致

三、事务的隔离级别

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

而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读。

MySQL默认的事务隔离级别为repeatable-read

事务隔离级别脏读不可重复读幻读
read-uncommitted
read-committed
repeatable-read
serializable

四、查看修改MySQL的事务隔离级别

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

修改事务的隔离级别
>set  [global | session]  transaction isolation level 隔离级别名称;
>set tx_isolation=’隔离级别名称;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值