首页 > 其他 > 详细

事务隔离级别

时间:2020-07-03 14:21:11      阅读:45      评论:0      收藏:0      [点我收藏+]
人们制定了一个所谓的SQL标准,在标准中设立了4个隔离级别:
READ UNCOMMITTED:未提交读。
READ COMMITTED:已提交读。
REPEATABLE READ:可重复读。
SERIALIZABLE:可串行化。
SQL标准中规定,针对不同的隔离级别,并发事务可以发生不同严重程度的问题,具体情况如下:
隔离级别            脏读      不可重复读     幻读
READ UNCOMMITTED    Possible     Possible     Possible
READ COMMITTED      Not Possible   Possible     Possible
REPEATABLE READ    Not Possible   Not Possible   Possible
SERIALIZABLE Not     Possible     Not Possible   Not Possible
也就是说:
READ UNCOMMITTED隔离级别下,可能发生脏读、不可重复读和幻读问题。
READ COMMITTED隔离级别下,可能发生不可重复读和幻读问题,但是不可以发生脏读问题。
REPEATABLE READ隔离级别下,可能发生幻读问题,但是不可以发生脏读和不可重复读的问题。
SERIALIZABLE隔离级别下,各种问题都不可以发生。
脏写是怎么回事儿?怎么里边都没写呢?这是因为脏写这个问题太严重了,不论是哪种隔离级别,都不允许脏写的情况发生。
不同的数据库厂商对SQL标准中规定的四种隔离级别支持不一样,比方说Oracle就只支持READ COMMITTED和SERIALIZABLE隔离级别。
本文所讨论的MySQL虽然支持4种隔离级别,但与SQL标准中所规定的各级隔离级别允许发生的问题却有些出入
MySQL在REPEATABLE READ隔离级别下,是可以禁止幻读问题的发生的。 MySQL的默认隔离级别为REPEATABLE READ,我们可以手动修改一下事务的隔离级别。

 

技术分享图片

 

事务隔离级别

原文:https://www.cnblogs.com/abcit/p/13229679.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!