MySQL数据库基础-事务的隔离级别

事务的隔离级别

1.如果不考虑隔离性,引发一些安全问题:
如果不考虑隔离性(一个事务执行受到其他的事务的干扰),引发一些安全问题,主要体现在读取数据上:
 脏读:一个事务读到了另一个事务未提交的数据,导致查询结果不一致。(同一个数据库表开启两个事务,其中一个事务A操作了表的数据,但是并未提交,这时另外一个事务B查询当前表的数据,查询到的数据是已经修改的数据,但是当A将事务回滚以后,B查询到的数据又是事务A修改之前的数据)。
 不可重复读:一个事务读到了另一个事务已经提交的update的数据,导致多次查询结果不一致。(同一个数据库表开启两个事务,其中一个事务A操作了表的数据,但是并未提交,这时另外一个事务B查询当前表的数据,查询到的数据还是未修改的数据,但是当A将数据提交后,B能查询到的数据还是A事务修改之前的数据,只有在B事务提交结束之后,重新打开查询才能查询到A事务修改后的数据!)。
 虚读/幻读:一个事务读到了另一个事务已经提交的insert的数据,导致多次查询结果不一致。
2.解决这些安全性问题:
设置事务的隔离级别:
 read uncommitted:脏读,不可重复读,虚读都有可能发生
 read committed:避免脏读。但是不可重复读和虚读是有可能发生
 repeatable read:避免脏读和不可重复读,但是虚读有可能发生。
 serializable:避免脏读,不可重复读,虚读。
3.事务隔离级别的设置:
设置事务的隔离级别:
SET SESSION TRANSACTION ISOLATION LEVEL 隔离级别
查看当前的隔离级别:
SELECT @@tx_isolation;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值