返回顶部
首页 > 资讯 > 数据库 >事务隔离(3)
  • 770
分享到

事务隔离(3)

事务隔离(3) 2020-06-03 00:06:07 770人浏览 猪猪侠
摘要

事务 保证一组数据库操作,要么全部成功,要么全部失败。 ACID特性 原子性:Atomicity 一致性:Consistency 隔离性:Isolation 持久性:Durability 当数据库中有多个事务同时执行的时候,就

事务隔离(3)

事务

保证一组数据库操作,要么全部成功,要么全部失败。

ACID特性

  • 原子性:Atomicity
  • 一致性:Consistency
  • 隔离性:Isolation
  • 持久性:Durability

数据库中有多个事务同时执行的时候,就可能出现脏读(dirty read)、不可重复读(non-repeatable read)、幻读(phantom read)的问题,为了解决这些问题,就有了“隔离级别”的概念。隔离的越严实,效率就会越低,需要在两者之间找一个平衡点。

事务隔离级别
隔离级别:串行化 > 可重复读 > 读提交 > 读未提交

  • 读未提交:read uncommitted,一个事务还没提交时,它做的变更就能被别的事务看到。会导致“脏读”、“幻读”、“不可重复读”。
  • 读提交:read committed,一个事务提交之后,它做的变更才会被其他事务-看到。避免了“脏读”,但不能避免“幻读”和“不可重复读”。
  • 可重复读:repeatable read,一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据时一致的。当然在可重复读的隔离级别下,未提交变更对其他事务也是不可见的,Mysql的默认级别。 避免了“脏读”和“不可重复读”,但不能避免“幻读”。
  • 串行化:serializable,对于同一行记录,“写”会加“写”,“读”会加“读锁”。当出现读写冲突的时候,后访问的事务必须等前一个事务执行完成,才能继续执行。能比秒“脏读”、“幻读”、“可重复读”。

不同事务级别带来的并发问题

  • 脏读:读取到了别的事务回滚前的脏数据。事务A读取了被另一个事务B修改,但是还未提交的数据。假如事务B回退,则事务A读取的是无效数据。
  • 不可重复读:当前事务进行了一次数据读取,然后再次读取的数据是别的事务修改成功的数据,导致两次读取到的数据不匹配
  • 幻读:当两个完全相同的查询执行时,第二次查询所返回的结果集和第一个查询的不相同。

MVVC概念
Multi-Version Concurrency Cotrol,多版本并发控制,直白的意思是同一份数据临时保留多个版本,进而实现并发控制。
mysql中建表时,每个表都会有三列隐私字段,其中和mvcC有关系的有两列:

  • 数据行的版本号(DB_TRX_ID
  • 删除版本号(DB_ROLL_PT
    每开始一个新的事务,系统版本号都会自动递增。事务开始时刻的系统版本号会作为事务的版本号,用来和查询到的每行记录的版本号进行比较。
您可能感兴趣的文档:

--结束END--

本文标题: 事务隔离(3)

本文链接: https://lsjlt.com/news/5216.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 事务隔离(3)
    事务 保证一组数据库操作,要么全部成功,要么全部失败。 ACID特性 原子性:Atomicity 一致性:Consistency 隔离性:Isolation 持久性:Durability 当数据库中有多个事务同时执行的时候,就...
    99+
    2020-06-03
    事务隔离(3)
  • 事务隔离性和隔离级别
    隔离性是当多个用户并发访问数据库时,比如同时操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离 事务的隔离级别有哪些? 一、概念 Read uncommitted(读未提交) Read ...
    99+
    2021-04-27
    事务隔离性和隔离级别
  • 03.事务隔离
       简单来说,事务就是要保证一级数据库操作,要么全部成功,要么全部失败。在MySQL中,事务支持是在引擎层实现的,但MySQL中并不是所有引擎都支持事务,比如Mysql原生的MyISAM引擎就不支持事务。   下面,我们将心InnoDb...
    99+
    2022-01-27
    03.事务隔离
  • 【MySQL】事务及其隔离性/隔离级别
    需要云服务器等云产品来学习Linux的同学可以移步/-->腾讯云-->阿里云-->华为云 show variables like 'autocommit';+---------------+-------+| Variable_name...
    99+
    2023-09-01
    mysql 数据库
  • MySQL事务隔离性
    事务隔离性 当多个线程都开启事务操作数据库中数据时,数据库系统要能进行隔离操作,以保证各个线程获取数据的准确性。 如果没有隔离,会发生的几种问题 脏读(Dirty Read) 一个事务处理过程里读取了另一个未提交的事务中的数据 ...
    99+
    2017-07-23
    MySQL事务隔离性
  • 事务隔离级别
    事务隔离是数据库处理的基础之一,Isolation是ACID中I的缩写,当多个事务同时进行更改和执行查询时,隔离级别是微调性能和可靠性、一致性和结果再现性之间的平衡的设置 MySQL支持以下几个隔离级别 ...
    99+
    2024-04-02
  • PostgreSQL DBA(23) - MVCC#3(事务快照和隔离级别)
    如前所述,PostgreSQL使...
    99+
    2024-04-02
  • MySQL事务隔离级别
      四类隔离级别    SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。  Read Unc...
    99+
    2024-04-02
  • SqlServer事务详解(事务隔离性和隔离级别详解) - 熊泽
    概述   不少人对于事务的使用局限于begin transaction:开始事务、commit transaction:提交事务、rollback transaction:回滚事务的初步运用。 并且知道使用事务后, 事务中所有操作命令必须...
    99+
    2019-10-07
    SqlServer事务详解(事务隔离性和隔离级别详解) - 熊泽
  • MySQL 事务的隔离级别
    1. 事务的ACID 事务的ACID是指事务拥有的4个特性的首字母组合:atomicity(原子性), consistency(一致性), isolation(隔离性)和durability(持久性)。 ①atomicity(原子...
    99+
    2019-01-27
    MySQL 事务的隔离级别
  • MySQL的事务隔离级别
    目录数据库事务的四大特性⑴ 原子性(Atomicity)⑵ 一致性(Consistency)⑶ 隔离性(Isolation)⑷ 持久性(Durability)SQL的4种隔离级别Read Uncommitted(读取未提交内容)R...
    99+
    2021-07-07
    MySQL的事务隔离级别
  • oracle之事务隔离级别
    本文小节了oracle中事务隔离级别。 ANSI SQL标准定义了4中隔离级别: READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZAB...
    99+
    2024-04-02
  • mysql事务隔离的级别
    这篇文章主要介绍“mysql事务隔离的级别”,在日常操作中,相信很多人在mysql事务隔离的级别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql事务隔离的级别”的疑惑...
    99+
    2024-04-02
  • Mysql事务隔离实现机制
    事务隔离 隔离性与隔离级别 当数据库上有多个事务同时执行的时候,就可能出现脏读(dirty read)、不可重复读 (non-repeatable read)、幻读(phantom read)的问题,为了解决这些问题,就有 了“隔离级别”的...
    99+
    2017-08-06
    Mysql事务隔离实现机制
  • MySQL锁与事务隔离级别
    1、概述 (1)锁的定义 锁是计算机协调多个进程或线程并发访问某一资源的机制。 在数据库中,除了传统的计算资源(如CPU、RAM、IO等)的争用以外,数据也是一种供需要用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据...
    99+
    2021-12-05
    MySQL锁与事务隔离级别
  • Mariadb之事务隔离级别 - Linux
    所谓原子性,就是事务中执行的语句要么全部执行,要么全部不执行,如果事务在中途发生错误,那么前面执行过的语句将会回滚到事务前;一致性指的是在执行事务之前和事务执行完成后的数据库状态是完整的;也就是说我们执行的语句都按照我们...
    99+
    2020-11-15
    Mariadb之事务隔离级别 - Linux
  • 事务的 4 个隔离级别
    一、事务的 4 个隔离级别 未提交读(Read Uncommitted):事务可以读取未提交的数据,也称作脏读(Dirty Read)。一般很少使用。 提交读(Read Committed):是大都是 DBMS (如:Oracle,...
    99+
    2016-08-30
    事务的 4 个隔离级别
  • MySQL基础——事务隔离级别
    事务是DBMS得执行单位。它由有限得数据库操作序列组成得。但不是任意得数据库操作序列都能成为事务。一般来说,事务是必须满足4个条件(ACID) ①:原子性(Autmic):事务在执行性,要做到“要...
    99+
    2024-04-02
  • MySQL事务隔离级别详解
    一、什么是事务? 事务是逻辑上的一组操作,要么全执行,要么全不执行。 事务最经典栗子也经常被拿出来的栗子就是银行转账了。比如小明要给小红转账1000元,这个转账会涉及到两个关键操作:将小明的余额减1000元,将小红的余额减1000元。万一这...
    99+
    2023-08-30
    mysql
  • mysql事务隔离级别详情
    serializable 串行化(无问题) 事务必须以顺序的方式执行,前一个事务提交之前后面的事务无法进行提交,最安全,但是不能并发操作,导致效率低下. repeatab re...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作