MySQL事务四大特性与隔离级别

一、四大特性

1、原子性

      每个事务都是一个整体不可再拆分

      事务中所有sql要么都执行成功、要么都执行失败

2、一致性

      事务在执行之前  数据库的状态,与事务执行之后的状态要保持一致      

3、隔离性

      事务与事务之间不应该相互影响,执行时要保证隔离状态

4、持久性

      一旦事务执行成功了,对数据的修改是持久的

二、隔离级别

     并发访问产生的问题

  • 脏读: 一个事务读取到另一个事务没有提交的数据
  • 不可重复读:一个事务中  两次读取的数据不一致
  • 幻读:一个事务读取了几行数据,另一个事务并发插入一些数据,在之后的查询中,第一个事务读到了一些原本不存在的数据

1、读取为提交(read uncommitted)

      可以防止问题:无

2、读取已提交(read committed)Oracle默认隔离级别

      可以防止问题:脏读

3、可重复读(repeatable read)MySQL默认隔离级别

      可防止问题:脏读、不可重复读

4、串行化(serializable)

      可防止问题:脏读、不可重复读、幻读

隔离级别从小到大安全性越来越高,但是效率越来越低

「查看隔离级别」

select @@tx_isolation; --查看当前隔离级别

「设置隔离级别」

set global transaction isolation level 隔离级别名称; --设置隔离级别

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值