zoukankan      html  css  js  c++  java
  • mysql事务

    1. 事务并不专属于mysql

    2. 事务的ACID特性

      1)原子性(atomicity)  

      一个事务必须被视为一个不可分割的最小工作单元,整个事务中得所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来讲,不可能只执行其中的一部分

          操作,这就是事务的原子性。

      2)一致性(consistency)

      数据库的总是从一个一致性的状态转换到另一个一致性的状态。

      3)隔离性(isolation)

      通常来说,一个事务所做的修改在最终提交之前,对其他事务是不可见的。

      4)持久性(durability)

      一旦事务提交,则其所做的修改就会永久保存到数据库中。

    3. 隔离级别

      1)READ UNCOMMITTED(未提交读)

        在该级别,事务中得修改,即使没提交,对其他事务也是可见的。

      2)READ COMMITTED(提交读)

        在提交之前对其他事务都是不可见的

      3)REPEATABLE READ(可重复读)[mysql默认的事务隔离级别]

        该级别保证了在同一个事务中多次读取同样的记录的结果是一致的。

        但是会产生幻读得问题

      4)SERIALIZABLE(可串行化)

        该级别会在读取的每一行数据上都加锁

    隔离级别 脏读可能性 不可重复读可能性 幻读可能性 加锁读
    READ UNCOMMITED Yes Yes Yes No
    READ COMMITTED No Yes Yes No
    REPEATABLE READ No No Yes No
    SERIALIZABLE No No No Yes

    4.死锁产生的原因

      1)因为真正的数据冲突

      2)存储引擎的实现方式

    5.mysql 提供了两种事物型的引擎:Innodb 、NDB Cluster

    6.多版本并发控制(MVCC)

  • 相关阅读:
    spring boot启动原理
    Minor GC ,Full GC 触发条件是什么?
    Redis分布式锁的正确实现方式Jedis客户端实现方式总结
    JVM命令总结
    InnoDB中B+树总结
    ThreadPoolExecutor 优先级的线程池
    锁的概述
    Deadlock Troubleshooting, Part 1
    Deadlock Troubleshooting, Part 3
    大型网站数据库优化和故障跟踪与排查(下篇)
  • 原文地址:https://www.cnblogs.com/kravis/p/5031377.html
Copyright © 2011-2022 走看看