事务特性和读写问题

事务有四大特性---------------原子性,一致性,隔离性,持久性。

其中的读写问题是发生在隔离性这一特性上。

什么问题呢?

读问题

  --------脏读,不可重复读,幻读

什么是脏读?

B事务update 一个数据 未提交 ,却可以在A事务中查询到变化  

怎么解决?

设置 A B事务隔离级别 为 READ COMMITTED(读已提交),这一隔离级别解决了脏读,但却带来了不可重复读问题,怎么解决?;

设置 A B事务隔离级别 为 repeatable read(可重复读) ,这一隔离级别会带来幻读问题,怎么解决?

设置 A B事务隔离级别为 串行行 ,可解决 脏读,不可重复读,幻读,但效率低,因为 从 start transaction 开始 只要一个事务 没有commit 另一个事务就不能开始;

写问题

丢失更新

怎么解决?

    ---悲观锁

  ----乐观锁

  可参考上一篇 CAS(乐观锁)!

posted @ 2018-11-01 22:14  大小黄人  阅读(510)  评论(0)    收藏  举报