美文网首页Java相关
Mysql并发控制-事务

Mysql并发控制-事务

作者: 万福来 | 来源:发表于2020-04-01 17:49 被阅读0次

    Mysql并发控制-事务

    事务的特性ACID

    • A: atomiciy 原子性
      一个事务必须保证其中的操作要么全部执行,要么全部回滚。
    • C: consistency 一致性
      数据必须保证从一种一致性的状态转换为另一种一致性状态。
    • I:isolation 隔离性
      当一个事务未执行完成时,通常会保证其他session无法看到这个事务的执行结果。
    • D:druability 持久性
      事务一旦commit,则数据会保存下来,即使提交后系统崩溃,数据也不会丢失。

    事务的隔离级别

    • READ UNCOMMITTED(读未提交,可脏读)
      事务中的修改,即使没有提交,其他会话也能读到-出现脏读。
    • READ COMMITTED(读已提交,可幻读)
      保证了一个事务如果没有commit,事务中的操作对其他会话是不可见的。
      解决了脏读的问题,但是会对其他session产生两次不一致的读取结果-出现幻读。
    • REPEATABLE READ (可重复读)
      一个事务中多次执行同一读sql,返回结果是一样的,解决了幻读和脏读问题。
      InnoDB使用间隙锁对当前读进行加锁,锁住行以及可能产生幻读得插入位置,阻止新的数据插入产生幻读行。
    • SERIALIZABLE(可串行化)
      最强的隔离级别,通过给事务中酶促读取的行加锁,写加写锁,保证不产生幻读问题,但是会导致大量超时以及锁竞争问题。

    相关文章

      网友评论

        本文标题:Mysql并发控制-事务

        本文链接:https://www.haomeiwen.com/subject/ssiauhtx.html