目录1. 事务2. MVCC初探3. LBCC & MVCC总结1. 事务介绍MVCC之前,先介绍下事务:事务是为了保证数据库中数据的完整性和一致性。事务的4个基本要素:原子性(Atomicity):要么同时成功,要么同时失败。(通过undo log回滚日志实现)一致性(Consistency):一方扣款 xxx 元,另一方收款 xxx 元,符合事物 ......
388
0
0
2023-02-12
什么是事务?事务就是要保证一组数据库操作,要么全部成功,要么全部失败,在MySQL中,事务支持是在引擎层实现的优点:支持严格的ACID属性(原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability))原子性(atomicity):构成事务的所有操作,要么全部执行,要 ......
422
0
0
2023-01-08
前言如何控制并发是数据库领域中非常重要的问题之一,MySQL为了解决并发带来的问题,设计了事务隔离机制、锁机制、MVCC机制,用一整套机制来解决并发问题,本文主要介绍事务隔离机制。一、什么是数据库事务事务transaction(简写tx),在数据库中,事务是指一组逻辑操作,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与结束之 ......
356
0
0
2022-12-26
本篇内容包括:MySQL 事务概念、MySQL 事务隔离级别以及MySQL 事务隔离的实现一、MySQL 事务概念一般来说, MySQL 事务都是指在 InnoDB 引擎下,MyISAM 引擎是不支持事务的。数据库事务指的是一组数据操作,事务内的操作要么就是全部成功,要么就是全部失败,什么都不做,其实不是没做,是可能做了一部分但是只要有一步失败,就要回滚所有 ......
310
0
0
2022-12-19
1 回顾在MySQL的众多存储引擎中,只有InnoDB支持事务,所有这里说的事务隔离级别指的是InnoDB下的事务隔离级别。读未提交:一个事务可以读取到另一个事务未提交的修改。这会带来脏读、幻读、不可重复读问题。(基本没用)读已提交:一个事务只能读取另一个事务已经提交的修改。其避免了脏读,但仍然存在不可重复读和幻读问题。可重复读:同一个事务中多次读取相同的数 ......
328
0
0
2022-12-10
什么是事务?数据库事务( transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由开始和结束之间执行的全部数据库操作组成。这是百科的定义,也是我们在面试的时候最常回答的关键字。可以这么说:事务是数据库执行过程的一个逻辑单位,由一个有限的数据库操作序列组成。举例来说,当我们购 ......
438
0
0
2022-12-10
0 什么是事务事务(Transaction) 是并发控制的基本单位。所谓的事务,它是一个操作序列,这些操作要么都 执行,要么都不执行,它是一个不可分割的工作单位。事务是数据库维护数据一致性的单位,在每 个事务结束时,都能保持数据一致性。同时,事务有着严格的地定义,必须满足四个特性,也就是我们一直说的ACID,但是,并不是说各种数据库就一定会满足四个特性,对于 ......
374
0
0
2022-12-10
MySQL 事务之前对事务的了解仅限于知道要么全部执行,要么全部不执行,能背出 ACID 和隔离级别,知其然但不知其所以然,现在觉得非常有必要系统学一下,关于事务,关于 LBCC,关于 MVCC,关于死锁 ……并发的问题所谓 事务 是用户定义的一个 数据库操作序列, 这些操作要么全做,要么全不做,是一个不可分割的工作单位,在关系型数据库中,一个事务可以是一条 ......
358
0
0
2022-11-28
1.事务的概念事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败。在不同的环境中,都可以有事务。对应在数据库中,就是数据库事务。2.事务的特性(ACID)1)原子性:事务中的若干个操作只有两种结果,全部成功和全部失败(“全部失败”不是指全部步骤都失败了,而是一旦中间某个步骤执行出错,就把前面已经执行完毕的步骤回滚回去)2)一致性:执行 ......
304
0
0
2022-11-28
控制事务一1). 查看/设置事务提交方式2). 提交事务3). 回滚事务注意:上述的这种方式,我们是修改了事务的自动提交行为, 把默认的自动提交修改为了手动提交, 此时我们执行的DML语句都不会提交, 需要手动的执行commit进行提交。控制事务二1). 开启事务START TRANSACTION 或 BEGIN ; 2). 提交事务COMMIT; 3) ......
310
0
0
2022-11-23
事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。就比如: 张三给李四转账1000块钱,张三银行账户的钱减少1000,而李四银行账户的钱要增加1000。这一组操作就必须在一个事务的范围内,要么都成功,要么都失败。正常情况: 转账这个操作, 需要分为以下这么三步来 ......
292
0
0
2022-11-23
事务回滚机制其实,讨论MySQL的事务回滚机制,也就是在说MySQL的事务原子性是如何实现的(关于事务之前文章中有过简单介绍)。所谓原子性,就是指一个事务是一个不可分割的工作单位,其中的操作要么都做,要么都不做;如果事务中的一个sql语句执行失败,则已执行的语句必须回滚,数据库会退回到事务前的状态。我们可以这么理解,就是说如果事务失败了,那么它对我们的数据库 ......
315
0
0
2022-11-16
事务的提交1. 概述要了解事务的提交过程,首先需要对mysql的基本逻辑结构以及一条sql语句的执行过程先有个大概;1.1 mysql 逻辑结构1.2 更新语句的执行过程以简单的更新语句可以知道大概的执行流程如下:从上面我们就可以得出,一个事务是需要以下几个过程的:服务层:连接器:客户端连接服务器,鉴权等等分析器:语法分析优化器:选择索引最后 执行器 操作 ......
381
0
0
2022-11-12
为什么需要事务隔离级别数据库不会只服务于一个服务端,肯定会出现多个请求同时落到数据库上,即使是同一个客户端也会并发执行多个事务。并发操作MySQL的同一批数据的时候就有可能出现数据安全问题,主要有脏写、脏读、不可重复读、幻读这些问题。本质上这些问题就是多事务并发的问题,那事务隔离就是为了解决这些问题儿设计的。认识多事务并发问题更新丢失(Lost Update ......
342
0
0
2022-11-12
什么是数据库事务数据库的 事务(Transaction)是一种机制、一个操作序列,包含了一组数据库操作命令,其执行的结果必须使数据库从一种一致性状态变到另一种一致性状态。事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行,因此事务是一个不可分割的工作逻辑单元。如果任意一个操作失败,那么整组操作即为失败,会回到 ......
366
0
0
2022-10-26