事务是指一组逻辑操作单元,使数据从一种状态变换到另一种状态,对数据库的增删改查都是事务操作事务的4个特性(ACID):原子性(Atomic):整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样一致性(Consistency):应用系统从一个正确的状态到另一个正确的状态
转载 2024-04-02 07:37:12
36阅读
目录一、事务简介 二、事务操作三、事务四大特性(ACID)四、并发事务问题1.  脏读 2.  不可重复读 3.  幻读 五、事务隔离级别一、事务简介事务 是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作 要么同时成功,要么同时失败。举例说明:最典型例子:银行转
一、事务的执行流程 当我们对数据库执行增删改操作时,不可能直接更新磁盘上的数据,如果实际上针对的是内存里面的Buffer Pool中的数据进行的。Buffer Pool中数据会异步的刷新到磁盘上(刷脏)。如上图所示,事务执行流程步骤(更新操作):1. 查询数据若Buffer Pool存在,则输出,不存在则读取磁盘中的数据并放入Buffer Pool
转载 2023-07-07 23:51:18
214阅读
1. 事务事务是指一个或者多个数据库操作,要么全部没有执行,要么全部成功执行。中途失败需要回滚到指定状态,全部执行成功需要确保持久保存在数据库中。事务拥有四个特性,习惯上被称之为ACID特性。 2. ACID特性为了更直观的解释ACID特性,下面先说明A, B, C之间互相转账的过程。假设A有10元,B有15元,C有8元A给B转账5元,操作记为T1。T1: read(A), A=A-5,
转载 2023-08-02 20:49:56
102阅读
目录1 为什么要事务2 事务的性质3 事务隔离性实现原理3.1 READ UNCOMMIT3.2 READ COMMIT3.3 REPEATABLE READ3.4 SERIALIZABLE4 事务mysql中的实现4.1MVCC多版本并发控制4.2原子性、稳定性和持久性实现原理4.3 undo 日志文件4.4 redo/undo 日志文件5 事务操作命令1 为什么要事务   事务是一组不可被分
微服务中的事务问题单服务中解决数据的一致性问题: 使用事务就ok了。事务的原则事务是什么? 事务的四大原则: 原子性: 要么都完成,要么都不完成。 一致性: 状态是一致的,结果是完整的。 隔离性: 在不同的事务,在操作同样的数据,在A没有commit的时候,别人是看不到的。 持久性: 当进行commit的时候,在进行提交都数据库中。使用mysql操作事务场景: 转账场景代码:SELECT * FR
转载 2023-09-12 12:52:28
90阅读
基础知识事务是指对一组SQL语句进行一个原子化的操作,即如果这一组SQL语句中有一条发生错误,那么其他的同组SQL就都不会被执行。你可以把它当作一个测试,当你执行完一组SQL语句后,可以查看一下结果是否正确,如果正确后可以选择提交,如果不正确则可以进行回滚,恢复到原本的状态。在MySQL中,所有的操作默认都是自动进行提交,当开启事务后则变为手动提交。基本使用单独开启单独开启是指对某一组的SQL语句
一、事务的概念事务就是一组原子性的SQL查询,或者说一个独立的工作单元。如果数据库引擎能够成功地对数据库应用该组查询的全部语句,那么就执行该组查询。如果其中有任何一条语句因为崩溃或其他原因无法执行,那么所有的语句都不会执行。也就是说,事务内的语句,要么全部执行成功,要么全部执行失败。可以通过一个银行事例来解释事务的必要性。假设有以下场景:现在用户A想通过银行转账200元给用户B,那么至少需要三个步
转载 2023-09-21 00:09:05
43阅读
四大特性事务具有ACID四个特性。也即:原子性,一致性,隔离性,持久性。原子性:语句要么全执行,要么全不执行,是事务最核心的特性,事务本身就是以原子性来定义的;实现主要基于undo log持久性:保证事务提交后不会因为宕机等原因导致数据丢失;实现主要基于redo log隔离性:保证事务执行尽可能不受其他事务影响;InnoDB默认的隔离级别是RR,RR的实现主要基于锁机制、数据的隐藏列、undo l
title: 数据库-MySQL事务 date: 2021-11-21 20:44:39 tags:数据库-MySQL事务mysql中,事务其实是一个最小的不可分割的工作单元。事务能够保证一个业务的完整性。比如银行转账,a用户的前转给b用户100元a -> -100update user set money = money - 100 where name = ‘a’;b -> +
事务: 有多个连续操作, 是一个整体: 要么所有的操作都成功, 要么所有的操作都失败.事务实现: 有两种方式手动实现: 用户自定义事务区间, 自己对事务进行整体把握, 自己对事务进行最终处理(通过SQL指令实现)自动实现: 用户不管事务处理, 直接执行SQL指令(操作), 系统自动帮助用户进行处理一、事务原理SQL指令的操作(写), 并不是直接写入到数据表: 先将操作的结果缓存起来, 到系统日志文
转载 2023-09-19 22:47:24
49阅读
什么是MVVCMVVC是mysql的的多版本并发控制即multi-Version Concurrency Controller,mysql的innodb引擎支持MVVC,在事务级别为RR(可重复读)和RC(读提交)生效。工作原理实现原理借助3个隐藏字段、undo log、read view实现3个隐藏字段数据库表的引擎为innodb时,都会为每行数据添加3个隐藏字段。DB_ROW_ID:包含一个行
转载 2023-08-24 10:42:58
82阅读
数据库事务的 ACID 四大特性是事务的基础,了解了 ACID 是如何实现的,我们也就清楚了事务实现1.原子性回滚日志想要保证事务的原子性,就需要在异常发生时,对已经执行的操作进行回滚,而在 MySQL 中,恢复机制是通过回滚日志(undo log)实现的,所有事务进行的修改都会先记录到这个回滚日志中,然后在对数据库中的对应行进行写入。回滚日志除了能够在发生错误或者用户执行 ROLLB
转载 2023-08-30 21:57:03
30阅读
一、事务事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。MySQL 默认采用自动提交模式。也就是说,如果不显式使用START TRANSACTION语句来开始一个事务,那么每个查询都会被当做一个事务自动提交。ACID1. 原子性(Atomicity)事务被视为不可分割的最小单元,事务的所有操作要么全部提交成功,要么全部失败回滚
转载 2024-02-04 23:08:12
46阅读
文章目录四种隔离级别的实现行锁MVCC实现 四种隔离级别的实现结论:对于RR和RC级别隔离,InnoDB使用MVCC+行锁实现。对于Serializable,使用表锁实现。具体实现:在可重复读(RR)的隔离级别下,事务启动时得到一个事务ID,整个事务存在期间只能看到小于等于这个事务ID的版本数据。(MVCC实现)在读提交(RC)的隔离级别下,每个SQL执行时,得到一个事务ID,这个SQL只能看到
前言:在学习 MySQL 的过程中,事务永远是一项绕不开的话题,日常程序开发也经常会用到事务。本篇文章将以 MySQL 8.0 版本为基础,一起来深入了解下 MySQL 事务。  一、事务的定义数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全地不执行。事务处理可以确保除非事务性单元内的所有操作都成功完成
转载 2023-09-26 20:48:27
0阅读
在实际的开发过程中,一个业务操作如:转账,往往是要多次访问数据库才能完成的。转账是一个用户扣钱,另一个用户加钱。如果其中有一条 SQL 语句出现异常,这条 SQL 就可能执行失败。事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。RDBMS = SQL语句 + 事务(ACID)MySQL中可以有两种方
一、背景  前面有说到InnoDB是事务型引擎,那什么是事务事务的特性是什么?它所对应的隔离级别是哪些?是怎么实现的?下面来详细讨论下。二、事务的理解  事务就是一组原子性的SQL查询,或者说一个独立的工作单元。如果数据库引擎能够成功地对数据库应用该组查询的全部语句,那么就执行该组语句。如果其中有任何一条语句因为崩溃或其他原因无法执行,那么所有的语句都不会执行。也就是说,事务内的语句,要么全部执
在上一章节,详细阐述了MySQL事务的特性,以及存在的并发问题。并且,也详细阐述了MySQL内置的四种不同的隔离级别,分别都解决了对应的并发问题。那么,同学们有没有思考一个问题:MySQL是怎么实现的这些不同的隔离级别?例如,在可重复读的隔离级别下,B事务明明已经提交了事务,表示对数据的修改已经写入了磁盘(至少可以保证能够写入磁盘),但是A事务是通过什么方式仍然获取到的原来的数据呢? 要搞懂这些
转载 2023-08-10 12:32:35
104阅读
文章目录1.事务的概念2.事务的特性2.1.四大特性-原子性、一致性、隔离性、持久性2.2.持久性如何保证2.3.事务的常用语句2.4.事务的隐式提交2.5.事务的隔离级别3.并发事务可能遇到的问题3.1.读写冲突3.2.写写冲突3.1.如何解决事务并发造成的问题3.1.1.解决一致性的问题LBCC--解决写写冲突MVCC--解决读写冲突3.1.2.当前读和快照读的概念4.MVCC的实现原理4.
转载 2023-08-23 12:50:51
61阅读
  • 1
  • 2
  • 3
  • 4
  • 5