数据库的脏读、不可重复读、幻读 |
发布时间: 2012/9/7 16:51:24 |
数据库的脏读、不可重复读、幻读都和事务的隔离性有关。所以先了解一下事务的4大特性。 事务的4大特性(ACID): 例如:事务T1修改了一行数据,但是还没有提交,这时候事务T2读取了被事务T1修改后的数据,之后事务T1因为某种原因Rollback了,那么事务T2读取的数据就是脏的。 解决办法:把数据库的事务隔离级别调整到READ_COMMITTED
例如:事务T1读取某一数据,事务T2读取并修改了该数据,T1为了对读取值进行检验而再次读取该数据,便得到了不同的结果。 解决办法:把数据库的事务隔离级别调整到REPEATABLE_READ 幻读: 解决办法:把数据库的事务隔离级别调整到SERIALIZABLE_READ 脏读、不可重复读、幻读的级别高低是:脏读 < 不可重复读 < 幻读。所以,设置了最高级别的SERIALIZABLE_READ就不用在设置REPEATABLE_READ和READ_COMMITTED了
本文出自:亿恩科技【www.enkj.com】 |