美文网首页
MS-Mysql-事务

MS-Mysql-事务

作者: Captain_tu | 来源:发表于2019-01-16 16:26 被阅读6次
  1. 事务(Transaction)的四个特征(ACID)
    1. 原子性 Atomicity
      事务中的操作,要么全部成功,要么全部失败回滚,不可能只执行其中的一部分操作。

    2. 一致性 Consistency
      如果事务最终没有提交,那么事务中所有的修改,都不会保存到数据库中。

    3. 隔离性 Isolation
      通常来说,一个事务中的修改,在最终提交之前,对其他事务是不可见的。这个“通常来说”,是因为不同的隔离级别,是不同的。

    4. 持久性 Durability
      一旦事务提交,则所做的修改将会永久保存在数据库中,即使当前系统崩溃,修改的数据也不会丢失。

  1. 隔离级别
    在SQL标准中定义了四种隔离级别,每种级别都规定了一个事务中所做的修改,哪些在事务内和事务间是可见的,哪些是不可见的。
    较低级别的事务可以执行更高的并发,系统的开销也更高。

    四种隔离级别

    1. Read UnCommited(未提交读)
      这个级别的隔离,事务中的修改,即使事务未提交,对其他事务也是可见的。事务可以读取未提交的数据,也被成为脏读(Dirty Read)。实际中很少使用。

    2. Read Commited(提交读)
      这个级别是大多数据库系统默认的隔离级别(Mysql不是)。这个级别就是隔离性定义的那样,一个事务提交之前,所做的修改,对其他事务是不可见的。

    3. Repeatable Read(可重复读)
      这个级别解决了脏读问题,保证在同一事务中,多次提取同样的记录的结果是一致的,是Mysql的默认隔离级别

      这个级别无法解决幻读问题,即当一个事务读取一个范围的数据时,另一个事务在这个范围插入了新的记录,当之前的事务再次读取该范围记录时,会产生幻行。InnoDB和XtraDB通过MVCC解决了幻读问题。

    4. Serializable(可串行化)
      这个是最高级别的隔离,他会在读取的每一行数据上加锁,避免幻读问题。但是会导致很多的超时和锁竞争问题,因此也很少使用。

    Mysql可以通过Set Transaction Isolation Level Read Commited;来修改事务的隔离级别。

  • 幻读问题测试


    InnoDB测试
    在事务中查id>12的记录
    另一个事务中插入新的记录
    前一个事务中重新查询,没有新插入的记录
    重开一个事务中,查询结果有新的记录

相关文章

  • MS-Mysql-事务

    事务(Transaction)的四个特征(ACID)原子性 Atomicity事务中的操作,要么全部成功,要么全部...

  • MS-Mysql-多版本并发控制(MVCC)

    Mysql的大多数事务型存储引擎实现的都不是简单的行级锁,基于提升性能的考虑,他们一般都同时实现了多版本并发控制(...

  • java事务

    1、java事务介绍 2、JDBC事务 3、JTA事务 1、java事务介绍 java事务分类:JDBC事务、...

  • 事务、MySQL与Python交互、Python 中操作 MyS

    1、事务 事务操作分两种:自动事务(默认)、手动事务 手动事务的操作流程 开启事务:start transacti...

  • 数据库事务书目录

    数据库事务 事务概念 本地事务 全局事务 全局事务的定义 J2EE中全局事务的实现 全局事务的优缺点 基于消息的分...

  • MySQL事务

    MySQL-innodb-事务 事务的特性 事务的生命周期 失败的事务: 事务的控制语句 面试题 事务日志-red...

  • mysql事务隔离机制及其隔离级别、实现原理分析

    目录 事务特性ACID属性 并发事务带来的问题 事务隔离级别 事务实现原理 事务特性ACID属性 事务特性指的就是...

  • MULE事务配置

    在mule的事务可能为jdbc事务,jms事务,xa事务等,多种事务.这里讲解事务的几个动作: 相关的文档:htt...

  • 事务—事务模型

    程序猿基础知识的学习、理解、整理——事务(方方土) 事务,看似很简单,其实很复杂,作为一个程序猿,你对事务到底了解...

  • 事务—XA事务

    程序猿基础知识的学习、理解、整理——事务(方方土) 什么是XA事务?在什么场景下会出现XA事务? @Transac...

网友评论

      本文标题:MS-Mysql-事务

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