MYSQL中修改事务隔离等级的方法

在MYSQL中,当很多事务同时进行时,会出现同一个表中的行或者列被多个事务同时读取或者修改的情况,那么此时就会出现语句执行优先级的问题。

例如:

    脏读:在某个事物所做的修改尚未提交时,其他事务就能看见这个修改,并且其他事务认为此修改已经被执行,起作用了,即使进行修改的事务后面被回滚了,没有执行此操作,其他事务还是会这样认为。

    不可重复读:同一事务多次使用select语句读取时,得到的结果不一样。例如一个事务两次用select读取,另外一个事务在他读取的过程中,对行进行了修改,那么这两个select将会得到不一样的结果。

    幻影行:当一个事务对一个表进行select读取,之后另外一个事务对这个表插入新的行,再次在这个事务进行读取,则会看到这个新行,其实是一个幻影。

为解决上述的问题,MYSQL的InnoDB引擎提供了四个等级的事务隔离等级,对事务进行等级划分,规定哪些事务可以看到其他事务所做的修改。

事务隔离级别:
READ UNCOMMITTED:允许其他事务看到尚未提交的行修改
READ CIMMITTED:允许某个事务看到已经提交的行修改
REPEATABLE READ:当一个事务执行两个相同的语句时,看到的结果是重复的,即使有事务同时修改行,看到的结果也是一样的(系统默认)
SERIALIZABE:当某个事务在读取某一行时,只有等他结束之后才能进行修改。
要修改这些事务隔离等级,方法如下:(三种)
set global transaction isolation level LEVEL;
set session transaction isolation level LEVEL;
set transaction isolation level LEVEL;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值