数据库的隔离级别有哪些

为了达到事务的四大特性,数据库定义了4种不同的事务隔离级别,由低到高依次为读取未提交(Read uncommitted)、读取已提交(Read committed)、可重复读(Repeatable read)、可串行化(Serializable)。

1.读取未提交(Read uncommitted)

读取未提交是最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读。

2.读取已提交(Read committed)

读取已提交允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生。

3.可重复读(Repeatable read)

可重复读是指对同一字段的多次读取结果都是一致的,除非数据是被本身事务自己所修改,可以阻止脏读和不可重复读。可重复读能解决部分幻读问题。当A select的时候,是快照读,B insert多少条都不会影响A的读。但当A update的时候,就是当前读,会生成新的快照点,导致幻读问题出现。

4.可串行化(Serializable)

可串行化是最高的隔离级别,完全服从ACID的隔离级别。所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,也就是说,该级别可以防止脏读、不可重复读以及幻读。

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《数据库的隔离级别有哪些》
文章链接:https://zhuji.vsping.com/4100.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。