当前位置: 首页 > news >正文

数据库事务编程

        事务是一个不可分割的数据库操作序列,也是数据库并发控制的基本单位,其执行的结果必须使数据库从一种一致性状态到另一种一致性状态。事务是逻辑上的一组操作,要么都执行,要么都不执行。

事务的 4 大特性 ACID

  1. 原子性 Atomicity:事务被视为一个不可分割的原子操作,要么全部执行成功,要么全部失败回滚,不会存在 部分执行成功部分失败的情况。
  2. 一致性 Consistency:事务执行前后,数据库状态应保持一致。即事务执行完毕后,所有数据应符合预设的规则和约束条件。
  3. 隔离性 Isolation:多个事务并发执行时,每个事务对其他事务的操作应该互不干扰,各自独立运作,避免数据交叉影响。
  4. 持久性 Durability:一旦事务提交成功,其所做的修改就应该永久保存在数据库中,即使系统崩溃或断电,也不应该丢失数据。

SQL 编程事务

start transaction;开启事务
commit;提交
rollback;回滚
savepoint 存储点,可以支持部分回滚

        数据库中的数据是用来实现数据共享的,高并发场景下则会出现数据安全问题,例如脏读、幻读、不可重复读和第一二类丢失更新。为了保证数据在高并发下的安全性,引入了事务。事务的隔离等级决定了数据的安全等级。

SQL 标准定义了四个隔离级别:

  1. READ-UNCOMMITTED 读取未提交: 最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读。
  2. READ-COMMITTED 读取已提交: 允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生。
  3. REPEATABLE-READ 可重复读: 对同一字段的多次读取结果都是一致的,除非数据是被本身事务自己所修 改,可以阻止脏读和不可重复读,但幻读仍有可能发生。
  4. SERIALIZABLE 可串行化: 最高的隔离级别,完全服从 ACID 的隔离级别。所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,也就是说,该级别可以防止脏读、不可重复读以及幻读。

相关文章:

数据库事务编程

事务是一个不可分割的数据库操作序列,也是数据库并发控制的基本单位,其执行的结果必须使数据库从一种一致性状态到另一种一致性状态。事务是逻辑上的一组操作,要么都执行,要么都不执行。 事务的 4 大特性 ACID 原子性 Atomicit…...

专题二_滑动窗口(1)

目录 209. 长度最小的子数组 解析 题解 3. 无重复字符的最长子串 解析 题解 1004. 最大连续1的个数 III 解析 题解 209. 长度最小的子数组 209. 长度最小的子数组 - 力扣(LeetCode) 解析 题解 class Solution { public:int minSubArrayLen(int…...

把本地文件上传到HDFS上操作步骤

因为条件有限,我这里以虚拟机centos为例 实验条件:我在虚拟机上创建了三台节点,部署了hadoop,把笔记本上的数据上传到hdfs中 数据打包上传到虚拟机节点上 采用的是rz命令,可以帮我们上传数据 没有的话可以使用命令安装…...

Leo赠书活动-21期 《一篇讲明白 Hadoop 生态的三大部件》

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 赠书活动专栏 ✨特色专栏:…...

【Redis】Redis 介绍Redis 为什么这么快?Redis数据结构Redis 和Memcache区别 ?为何Redis单线程效率也高?

目录 Redis 介绍 Redis 为什么这么快? Redis数据结构 Redis 和Memcache区别 ? 为何Redis单线程效率也高? Redis 介绍 Redis 是一个开源(BSD 许可)、基于内存、支持多种数据结构的存储系统,可以作为数据…...

ArrayList和LinkedList有什么区别?

ArrayList和LinkedList的区别 ArrayList 和 LinkedList 是 Java 中常用的两种集合类,它们都实现了 List 接口,但在内部实现和性能上有一些区别。 内部实现: ArrayList 使用数组实现,它的元素在内存中是连续存储的,每…...

离线数仓(八)【DWD 层开发】

前言 1、DWD 层开发 DWD层设计要点: (1)DWD层的设计依据是维度建模理论(主体是事务型事实表(选择业务过程 -> 声明粒度 -> 确定维度 -> 确定事实),另外两种周期型快照事实表和累积型…...

Jenkins用户角色权限管理

Jenkins作为一款强大的自动化构建与持续集成工具,用户角色权限管理是其功能体系中不可或缺的一环。有效的权限管理能确保项目的安全稳定,避免敏感信息泄露。 1、安装插件:Role-based Authorization Strategy 系统管理 > 插件管理 > 可…...

简明conan教程

简明conan教程 1 关于conan1.1 来源1.2 作用 2 安装conan2.1 ubuntu2.1.1 安装python32.1.2 安装conan 2.2 Windows2.2.1 安装python32.2.2 安装conan 2.3 验证conan是否成功2.4 命令解释2.4.1 Consumer commands2.4.2 Creator commands2.4.3 Package development commands2.4.…...

LeetCode刷题--- 等差数列划分 II - 子序列

个人主页:元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归题 http://t.csdnimg.cn/yUl2I 【C】 ​​​​​​http://t.csdnimg.cn/6AbpV 数据结构 ​​​http://t.csdnimg.cn/hKh2l 前言:这个专栏主要讲述动态规划算…...

kubectl 启用shell自动补全功能

官网手册参考:https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-linux/ 系统:centos7 补全脚本依赖于工具 bash-completion, 所以要先安装它(可以用命令 type _init_completion 检查 bash-completion 是否已安装&a…...

极简wordpress网站模板

Pithy设计师wordpress网站模板 精练简洁的wordpress模板,设计师或设计工作室展示型网站模板。 https://www.jianzhanpress.com/?p6329...

【python】(16)python的字典dict按照key或value排序的不同方法

系列文章回顾 【python】(01)初识装饰器Decorator 【python】(02)初识迭代器Iterator 【python】(03)初识生成器Generator 【python】(04)python中实现多任务并发和并行的区别 【python】(05)如何使用python中的logging模块记录日志信息 【python】(06)理解Python中的 lambda 、…...

微服务篇-C 深入理解第一代微服务(SpringCloud)_VI 深入理解Zuul服务网关

原创作者:田超凡(程序员田宝宝) 版权所有,引用请注明原作者,严禁复制转载 Part 1 理论部分 1 网关类别有哪些? 常见的网关类别有三种:开放API(Open API)网关、微服务…...

web CSS笔记1

CSS(Cascading Style Sheets) 美化样式 CSS通常称为CSS样式表或层叠样式表(级联样式表),主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及…...

js算法记录

> 更多请前往 https://www.passerma.com/article/86 滑动窗口 1 给定一个矩阵,包含N*M个整数,和一个包含K个整数的数组。现在要求在这个矩阵中找一个宽度最小的子矩阵,要求子矩阵包含数组中所有的整数 function minSubmatrixWidth(mat…...

球面数据的几何深度学习--球形 CNN

目录 一、说明二、球形 CNN概述三、球面数据的对称性四、标准(平面)CNN的局限性五、卷积并发症六、球面卷积七、球面卷积是不够的 一、说明 球面数据的几何深度学习–球形 CNN。通过对物理世界的平移对称性进行编码,卷积神经网络 &#xff0…...

MySQL学习笔记------SQL(1)

关系型数据库(RDBMS) 建立在关系模型基础上,由多张相互连接的二维表组成的数据库 特点:使用表储存数据,格式统一,便于维护 使用SQL语言操作,标准统一,使用方便 SQL通用语法 SQL…...

PMP能提前查成绩?还能改分数?别太离谱!

震惊!3月10日PMP考试才结束没多久,昨天就有学员收到了查分邮件,寄信人自称自己是内部人员,可以提前查询到成绩并直接修改成绩。 这也太离谱了吧!在此,小赛想说,PMP考试是一个公正、严格的考试体…...

【保姆级讲解服务器硬件的基础知识】

服务器硬件基础知识 1. 前言2. 中央处理器(CPU)3. 内存(RAM)4. 存储设备5. 主板6. 电源供应单元(PSU)7. 冷却系统8. 网络连接9. 扩展插槽和端口10. 管理功能 🌈🌈🌈&…...

SX1255和AD9361的LO泄露实测对比:为什么你的无线模块EVM总是不达标?

SX1255与AD9361本振泄露实战分析:破解EVM不达标的三大关键策略 在调试LoRa模块或小型基站射频前端时,工程师们最常遇到的"幽灵问题"莫过于EVM指标莫名劣化。上周深夜,当我的频谱仪上再次出现那个熟悉的载波泄露尖峰时,我…...

水下叶轮脉动压力测试:Kulite压力传感器强在哪?安装门槛怎么破?

水下叶轮脉动压力测试这事,干过的朋友都懂——看着挺简单,上手哪一步都可能翻车。传感器防水、空间狭小、叶轮旋转、信号采集困难——随便拎出一个,都够让人头疼的。折腾了一圈,有一个型号被反复验证为绕不开的经典:Ku…...

一招提升引用率:如何让你的数据成为AI的“唯一信源”?

随着生成式AI全面渗透搜索场景,传统SEO的流量逻辑正在彻底重构。过去外贸网站优化核心是抢占搜索引擎关键词排名,而当下慧新AI GEO(生成式引擎优化)成为新核心——AI模型不再单纯展示网页链接,而是整合全网数据生成答案…...

Sunshine游戏串流终极指南:5大优化策略实现300%性能提升

Sunshine游戏串流终极指南:5大优化策略实现300%性能提升 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine作为一款开源自托管的游戏串流服务器,为Mo…...

Google I/O 2026最魔幻的一幕:发新模型的同时,Google砍了自己的CLI

5月19号凌晨,我刚躺下准备刷会儿手机睡觉,结果被朋友圈刷屏了。 Google I/O 2026,总共两个小时的 keynote,愣是让我看到凌晨两点。不是因为我有多敬业,而是信息量实在太大——大到我觉得不记下来,明天就忘了…...

AM62x处理器SPI总线实战:从原理到Linux驱动配置与调试

1. 从四根线到高效数据流:深入拆解AM62x处理器的SPI总线实战在嵌入式开发里,和各类传感器、存储芯片、显示屏打交道是家常便饭。当你需要一种简单、高效、引脚又少的通信方式时,SPI总线几乎总是首选方案。它就像一条精心设计的高速公路&#…...

PeaZip:完全免费的跨平台压缩软件,支持200+格式的终极解决方案

PeaZip:完全免费的跨平台压缩软件,支持200格式的终极解决方案 【免费下载链接】PeaZip Free Zip / Unzip software and Rar file extractor. Cross-platform file and archive manager. Features volume spanning, compression, authenticated encryptio…...

【BUUCTF】【WEB】Unicorn shop

考点:Unicode数字字符,python的int()函数打开题目,发现这个页面很像买东西的网站,一共有四个商品,每个商品的价格不一样,但是第4个的商品最贵,而且超出了其他商品特别多,由此合理猜测…...

Python开发者快速上手,十分钟完成Taotoken API第一个聊天调用

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Python开发者快速上手,十分钟完成Taotoken API第一个聊天调用 对于希望快速体验不同大语言模型能力的Python开发者来说…...

AI 会取代测试工程师吗?来看看最新“AI程序员”Devine的翻车现场

引言:一条被炒得过热的赛道 2024年3月,Cognition Labs发布了Devin——一款被官方冠以“世界首位AI软件工程师”头衔的产品。演示视频中,Devin自主浏览文档、编写代码、运行测试、提交PR,甚至能在Upwork上接单挣钱。资本市场迅速反应:Cognition Labs在A轮融资中拿到了2100…...