一、数据库事物的四个特性:
1.1、原子性:一个事物内的所有操作共同组成一个原子包,要么全部成功,要么全部失败,
1.2、一致性:一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态
隔离性:不同事务之间相互独立,互不干扰。
1.3、持久性:当一个事物提交后,数据库的状态永久的发生了改变。即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作
二、数据库提供的四种隔离级别
Serializable (串行化):可避免脏读、不可重复读、幻读的发生。
Repeatable read (可重复读):可避免脏读、不可重复读的发生。(默认)
Read committed (读已提交):可避免脏读的发生。
Read uncommitted (读未提交):最低级别,任何情况都无法保证。
三、没有开启隔离级别会产生的问题:
2.1、脏读:一个事物处理过程中读到了另一个未提交的事物中的数据 (修改时允许读取)
2.2、不可重复读:不可重复读是指在对于数据库中的某个数据,一个事务范围内多次查询却返回了不同的数据值,这是由于在查询间隔,被另一个事务修改并提交了(读取时允许修改)
2.3、幻读:一个读取事务读取时,另一个插入事务(注意此处时插入)插入了一条新数据,这样就可能多读出一条数据,出现幻读。(读取时允许插入)
网友评论