mysql 问题解决 3

news/2024/11/16 14:20:20/

4 事务

1、什么是数据库的事务?

数据库的事务是一个作为单个工作单位执行的一系列操作,这些操作要么完全地执行,要么完全不执行。事务由四个主要特性定义,通常被称为ACID属性:

  1. 原子性(Atomicity):事务中的所有操作都被视为一个整体,它们要么全部成功,要么全部失败。
  2. 一致性(Consistency):事务必须使数据库从一个一致的状态转换到另一个一致的状态。
  3. 隔离性(Isolation):并发执行的事务的结果必须与事务逐个串行执行的结果相同。
  4. 持久性(Durability):一旦事务提交,它对数据库的改变就是永久性的,即使系统发生故障也不会丢失。

例子

假设有一个银行应用程序,需要处理两个账户之间的转账事务。这个事务可以分为几个步骤:

  1. 从源账户扣除一定数额的金额(A账户减少$100)。
  2. 将该数额添加到目标账户(B账户增加$100)。

按照事务的原则,这两个操作必须一起完成。如果在从A账户扣款后系统崩溃,而金额还没有添加到B账户,事务的原子性将确保这些变化都不会应用到数据库中。一旦系统恢复,事务可以重新启动或完全回滚到开始状态,从而保证一致性和持久性。隔离性确保的是,在这个转账事务执行的同时,不会有其他事务影响这两个账户的状态。

4、事务的并发问题?

事务的并发控制是为了解决多个事务同时运行时可能出现的问题。主要的并发问题包括:

  1. 丢失修改(Lost Update):是指在多个同时进行的并发事务中,一个事务的修改被另一个事务的修改覆盖,导致前一个事务的修改结果丢失。
  2. 脏读(Dirty Read):一个事务读取了另一个事务未提交的数据,如果那个事务回滚,读取的数据就是无效的。
    事务A从账户读取余额为$500并将其更新为$600,

http://www.ppmy.cn/news/1201901.html

相关文章

企业数字化转型与供应链效率-基准回归复刻(2007-2022年)

参照张树山(2023)的做法,本团队对来自统计与决策《企业数字化转型与供应链效率》一文中的基准回归部分进行复刻。文章实证检验企业数字化转型对供应链效率的影响。用年报词频衡量上市公司数字化转型程度,以库存周转天数来衡量供应…

移除元素,原地修改输入数组

题目: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数…

VSCode修改主题为Eclipse 绿色护眼模式

前言 从参加开发以来,一直使用eclipse进行开发,基本官方出新版本,我都会更新。后来出来很多其他的IDE工具,我也尝试了,但他们的主题都把我劝退了,黑色主题是谁想出来?😂 字体小的时…

c++实现组播和广播的发送和接收端

广播 接收端 #include <iostream> #include <WinSock2.h> #include <WS2tcpip.h> #include <vector> #include "MsgDefForDataServer23Tai.h" #include "LocatorData.h"#pragma comment(lib, "ws2_32.lib") using names…

volatile-日常使用场景

6.4 如何正确使用volatile 单一赋值可以&#xff0c;但是含复合运算赋值不可以&#xff08;i之类的&#xff09; volatile int a 10; volatile boolean flag true; 状态标志&#xff0c;判断业务是否结束 作为一个布尔状态标志&#xff0c;用于指示发生了一个重要的一次…

加快网站收录 3小时百度收录新站方法

加快网站收录 3小时百度收录新站方法 3小时百度收录新站方法说起来大家可能不相信&#xff0c;但这确实是真实的(该方法是通过技术提交&#xff0c;让百度快速抓取收录您的网站&#xff0c;不管你网站有没有备案&#xff0c;都能在短时间内被收录&#xff0c;要是你的网站迟迟不…

Evaluation Metrics in the Era of GPT-4

本文是LLM系列文章&#xff0c;针对《Evaluation Metrics in the Era of GPT-4: Reliably Evaluating Large Language Models on Sequence to Sequence Tasks》的翻译。 GPT-4时代的评估度量&#xff1a;在序列到序列的任务中可靠地评估大型语言模型 摘要1 引言2 实验设置3 评…

nacos配置中心docker部署、配置及 goLang 集成使用

为什么需要配置中心 平时我们写一个demo的时候&#xff0c;或者说一个单体的应用&#xff0c;都会有一个配置文件&#xff0c;不管是 json文件或者yaml文件&#xff0c;里面包含了redis,mysql,es等信息&#xff0c;如果我们修改了配置文件&#xff0c;往往我们需要重启&#x…