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)

  • 相关阅读:
    DNS原理总结及其解析过程详解
    linux修改进程名
    mq_open失败,Invalid argument
    Posix消息队列
    undefined reference to 'mq_open'
    量化投资学习笔记08——统计学基础补漏
    量化投资学习笔记07——python知识补漏
    量化投资学习笔记06——《打开量化投资的黑箱》读书笔记
    量化投资学习笔记05——检验计算回测指标程序
    量化投资学习笔记04——回测实盘策略
  • 原文地址:https://www.cnblogs.com/kravis/p/5031377.html
Copyright © 2011-2022 走看看