事物的隔离级别及产生的影响脏读 不可重复读 幻读

事务隔离四种级
TRANSACTION_READ_UNCOMMITTED (RU) 允许脏读。
TRANSACTION_READ_COMMITTED (RC) 防止脏读,最常用的隔离级别,并且是大多数数据库的默认隔离级别
TRANSACTION_REPEATABLE_READ (RR) 可以防止脏读和不可重复读,
TRANSACTION_SERIALIZABLE 可以防止脏读,不可重复读取和幻读,(事务串行化)会降低数据库的效率

脏读(Dirty Read)
脏读意味着一个事务读取了另一个事务未提交的数据,而这个数据是有可能回滚

不可重复读(Unrepeatable Read)
不可重复读意味着,在数据库访问中,一个事务范围内两个相同的查询却返回了不同数据。这是由于查询时系统中其他事务修改的提交而引起的。
事务1:查询一条记录
————–>事务2:更新事务1查询的记录
————–>事务2:调用commit进行提交
事务1:再次查询上次的记录
*此时事务1对同一数据查询了两次,可得到的内容不同,称为不可重复读
幻读(phantom read)
幻读,是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样.

转至:http://www.cnblogs.com/flysun0311/archive/2013/03/11/2953883.html
http://blog.csdn.net/gaoshan_820822/article/details/4582561

你可能感兴趣的:(mysql,oracle,mongodb)