事物并发问题的介绍
对于同时运行的多个事物,当这些事物访问数据库中相同的数据时,如果没有采取必要的隔离机制,就会导致各种并发问题。
- 脏读 :对于两个事物T1和T2,T1读取了已经被T2更新但是没有提交的字段之后,若T2回滚,T1读取的内容就是临时且无效的。(针对的是更新)
- 不可重复读:对于两个事物T1和T2,T1读取了一个字段,然后T2更新了该字段之后,T1再读取同一个字段,值就不同了。
- 幻读: 对于两个事物T1,T2,T1从一个表中读取了一个字段,然后T2在该表中插入新的行之后,如果T1再读取同一个表,就会多出几行。(针对的是插入或者删除)
数据库事物的隔离性:数据库系统必须具有隔离并发运行各个事物的能力,使他们不会相互影响,避免各种并发问题。
一个事物与其他事物隔离的程度称为隔离级别。数据库规定了多种事物的隔离级别,不同隔离级别对应不同的干扰程度,隔离级别越高,数据一致性就越好,但并发性越弱 。
数据库提供的四种隔离级别。