数据库事务ACID,及事务的隔离级别,脏读,幻读

原子性:整个事务中的所有操作要么全部完成,要么全部不完成,不能停滞在中间某个环节

一致性:事务前后数据库的完整性约束没有被破坏

隔离性:多个事务之间是互不干扰的,一个事务不可能看到其它事务中间某一时刻的数据

持久性:事务对数据库的操作更改是持久的,不会被回滚

四种事务隔离级别:

读未提交:读取其他事务没有提交的数据(脏读,幻读,不可重复读,避免了第一类更新丢失)

读已提交:读已提交的数据(出现不可重复读,幻读)

可重复读:同一事务多次读取时能够保证所读取的数据一样,后续读取不能读到另一个事务已经提交的数据(会出现幻读)

串行读取:一个事务接一个事务串行执行

 

名词解释:

更新丢失:每个事务不知道其它是无的操作,后面的事务对数据做修改导致前面事务所做的数据修改丢失

解决办法:对行加锁,只允许一个更新事务。

脏读:读取到其它事务没有提交的数据

幻读:一个事务对数据库中所有数据做了修改,这时新插入一条数据,并提交,这时在读取一次后面插入的数据被读出,给人感觉有一条数据没有被修改

不可重复的:一个事务多次读取的数据结果不一样

解决办法:只有在事务已提交后才允许读取这条数据则可避免该问题

猜你喜欢

转载自super-sjh.iteye.com/blog/1886659