事务并发访问引发的三个问题
一、事务的四大特性
今天中午给大家分享关于数据库中的事务并发访问问题,首先简单说下什么是事务的四大特性:
一:隔离性
在多用户并发访问数据库时,一个用户的事务不能被其他用户的事务干扰到,即多事务之间应该是相互独立的.
二:持久性
事务提交之后,数据库的改变是永久性的
三:原子性
事务包装的一组sql是一个不可分割的工作单位,即事务中的操作是具有统一性的
四:一致性
事务在执行的前后,数据库都必须处于一致性的状态
二、并发访问引发的三个问题
1.脏读
脏读的定义是:一个事务读取了其他事务未提交的数据,在我们正常开发过程中,是不允许出现的.通常发生在事务在没有隔离性的条件下
2.不可重复读
定义:在一个事务内多次读取了表中的数据,且多次读取的结果不同.通常发生事务在update操作中
说明:事务b首先读取数据库的数据,探后事务A对数据修改并提交,之后事务b对数据库再次进行了读取,这时造成了事务b的两次读取结果不一致.
3.幻读
定义:一个事务读取到了别的事务插入或者删除的数据,导致的前后读取记录行数不同,通常发生事务在insert,delete操作中
说明:事务b首先读取数据的数量,然后事务a添加并提交了一条数据.接着事务b再次读取了数据的数量,造成了事务b的2次读取结果不一致.