mysql 隔离级别

数据库事务具有隔离性,在SQL标准中有四种隔离级别。

READ UNCOMMITTED(未提交读):这个级别下,即使是没有提交的事务下的修改,其他事务也是可见的,会产生脏读。级别低,但是性能没有明显高于其他的级别,很少使用。

READ COMMITED(提交读):大多数数据库采用的隔离级别都是这种(Sql Server , Oracle),但是mysql不是。一个事务开始只能看见已经提交的事务做的修改。但是一个事务访问某个数据不具备幂等性。例如事务T1查询了A数据值是V,这时事务T2修改了A数据改为V1,并且提交后,事务T1再去查询A数据就是V1了。

REPEATABLE READ:确保了同一个事务多次读取同样纪录的结果是一致的。但是会出现幻读。InnoDB和XtraDB通过MVCC解决了幻读的问题。(mysql)采用的级别。

SERIALIZABLE(可串行化):最高隔离级别。强制事务串行执行,会导致大量超时和锁争用的问题。

posted @ 2018-08-09 07:49  Over_Watch  阅读(226)  评论(0编辑  收藏  举报