news 2026/4/20 16:46:45

初识 事务

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
初识 事务

目录

什么是事务?

事务的ACID特性

事务语法

保存点

手动提交事务

隔离级别

四种标准隔离级别

读未提交(Read Uncommitted)

读已提交(Read Committed)

可重复读(Repeatable Read)

串行化(Serializable)

隔离级别与并发问题的关系


什么是事务?

事务 是 数据库操作的最小逻辑单元,

它把一组SQL组成一个整体,这些整体执行过程中要么全部成功执行,要么全部失败回滚。

事务的ACID特性

  • 原子性(Atomicity):事务是不可分割的工作单元,要么全部完成,要么全部不完成。 不存在只执行到到一半的情况
  • 一致性(Consistency):事务执行后,保证数据是正确且符合预期的。
  • 隔离性(Isolation):多个事务相互不能影响。
  • 持久性(Durability):事务一旦提交,存储在介质中,无论数据是否损毁,都不会影响安全性。

事务最终要满足 一致性的

通过原子性隔离性持久性来实现的

基于事务的ACID特性 ,这也就是使用事务的缘由

在数据库使用的过程中,对于修改的只要提交成功 就可以保存成功 ,只要回滚 就可以是事务恢复如初

事务语法

事务语法用于数据库操作中确保数据一致性,通常包含BEGINCOMMITROLLBACK等关键命令。

//事务的开始

STARTTRANSACTION;

或者

BEGIN

//提交当前事务 并更改持久化保存

COMMIT

//回滚当前的事务,取消对其的更改

ROLLBCAK

在开起一段事务中,处于在事务中的SQL 都具有ACID的特性

此外 在commit 之后再 rollback无效因为数据已经落盘了事务已经提交了

保存点

事务保存点 允许在事务执行过程中设置标记点,如果后续操作失败,可以回滚到保存点

Savepoint savepoint 1(保存名);

Savepoint savepoint 2(保存名);

多次建立保存点可以完成以下的操作

手动提交事务

事务的提交一般设置的是自动的

在使用SHOW variables like 'autocommit';

可以检查事务是否是自动提交的

这里可以自主修改自动提交事务改为手动的

set autocommit = 0;

注意:

1.只要开始STARTTRANSACTION 或者BEGIN要必须经过commit 提交才能持久化 或者 rollback 回滚结束事务,与set autocommit 无关

2.但在手动提交事务情况之下,不用显示开启事务,在执行修改操作之后,提交或回滚操作事务时直接使用commitrollback

3.已经提交的事务不可以回滚

在每次重启之后 都会改为自动

若要永久为手动提交事务--->这里要在配置文件里修改

隔离级别

四种标准隔离级别

读未提交(Read Uncommitted)

最低的隔离级别,允许事务读取其他事务未提交的数据。

可能导致脏读、不可重复读和幻读。

读已提交(Read Committed)

事务只能读取其他事务已提交的数据。

避免了脏读,但可能出现不可重复读和幻读。

可重复读(Repeatable Read)

确保事务内多次读取同一数据的结果一致。

避免了脏读和不可重复读,但可能出现幻读。

串行化(Serializable)

最高的隔离级别,通过强制事务串行执行避免所有并发问题(脏读、不可重复读、幻读),

但性能最低

  • 脏读:事务A读取了事务B未提交的数据,若事务B回滚,事务A读取的数据无效。
  • 不可重复读:事务A多次读取同一数据,期间事务B修改并提交了该数据,导致事务A两次读取数据结果不一致
  • 幻读:事务A查询某范围数据时,事务B插入或删除了该范围内的数据并提交,导致事务A再次查询时结果集发生变化。

隔离级别与并发问题的关系

隔离级别脏读不可重复读幻读
Read Uncommitted
Read Committed
Repeatable Read
Serializable

并发性能是高到低

但是安全性能却是恰恰相反的 有利就有弊低到高

事务保证了数据的安全索引提升了数据查询的效率

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 16:44:35

降AI率工具哪个好?看技术原理就知道答案

降AI率工具哪个好?看技术原理就知道答案 一、为什么用户评价不可靠,技术原理才是真相? 你在小红书搜"降AI率工具哪个好",会看到大量用户评价:“XX工具真好用”、“我用XX一次过”、“推荐XX”。这些评价有没有参考价值?有,但非常有限。 原因很简单:一…

作者头像 李华
网站建设 2026/4/20 16:42:22

DeepSeek-OCR-2应用案例:律所合同扫描件智能解析与条款结构化提取

DeepSeek-OCR-2应用案例:律所合同扫描件智能解析与条款结构化提取 1. 引言:律所文档处理的痛点与机遇 在律师事务所的日常工作中,合同文档处理是一个既重要又繁琐的环节。传统的合同处理方式往往面临三大挑战: 效率瓶颈&#x…

作者头像 李华
网站建设 2026/4/20 16:40:54

技术美术面试官视角:从Unity渲染到C#优化,我们到底想听什么?

技术美术面试官视角:从Unity渲染到C#优化,我们到底想听什么? 当一位技术美术候选人走进面试间,面试官手中的评分表远不止于技术术语的罗列。我们真正期待的,是透过代码与Shader背后,看到候选人如何将艺术思…

作者头像 李华