事务的隔离级别-(关系型数据库)

一、事务具有以下ACID特性:
原子性(Atomictiy):原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要全部应用到数据库,如果操作失败则不能对数据库有影响。
一致性(Consistency):一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。
隔离性(Isalation):当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他的事务的操作所干扰,多个并发事务之间要相互隔离。
持久性(Durability):是指一个事务一旦被提交了,那么对数据库中的数据的改变是永久的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。

二、不考虑事务隔离级别,会出现什么问题?
1.脏读:是指一个事务处理过程中读取了另一个未提交的事务中的数据。
2.不可重复读:是指在对于数据库中的某个数据,一个事务范围内多次查询却返回了不同的数据值,这是由于在查询间隔,被另一个事务修改并提交了。
3.幻读:是事务非独立执行时发生的一种现象。

三、四种隔离级别说明
1.串行化(serializable):可避免脏读,不可重复读,幻读的发生。(最高级别,执行效率越低)
2.可重复读(Repeatable Read):可避免脏读,不可重复读的发生。(MySQL默认隔离级别)
3.读已提交(Read committed):可避免脏读的发生。(读已提交)
4.读未提交(Read uncommitted):最低级别,任何情况都无法保证。

***敲重点,必须得记会。记住,别人帮你,你就得努力啊~

猜你喜欢

转载自www.cnblogs.com/jebel-25/p/9454563.html