news 2026/5/1 9:41:47

事务操作流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
事务操作流程

1.开启事务:明确事物的起始点(begin或者start transaction)

2.执行操作:执行SQL语句

3.判断结果:若操作都执行成功,提交事务,修改生成

若任意操作失败,回滚事务,撤销所有已经执行的修改

事务的作用:

1.保证数据的一致性:避免因部分操作成功,部分操作失败导致的数据混乱(转账扣钱,但是收款方未收到钱)

2.支持并发控制操作:通过设置隔离性协调多个用户同时操作数据库

3.提供错误恢复机制:操作失败时可通过回滚操作恢复到初始状态,减少数据损坏风险

注意事项:

1.并非所有数据库存储引擎都支持事务(比如MYSQL中的MYLSAM不支持,innoDB支持)

2.事务开启后需要尽快提交或者回滚,避免长时间占用资源导致并发性能下降

3.隔离级别越高,数据一致性最好,但并发效率可能越低。

隔离性在数据库中定义了多个并发事务之间的交互规则,用于平衡数据一致性和并发性能,

4个等级,不同的级别针对并发问题(脏读,不可重复读,幻读)的解决程度不同,

4个等级从低到高:

1.读,未提交(read uncommitted)

定义:一个事物可以读取到另一个未提交的事务所所修改的数据

问题:存在“脏读”问题(提交到未提交的“临时数据”,若对方回滚,数据无效)

场景:几乎不使用该隔离性,只适用于对数据一致性要求非常低的场景

2.读已提交(read committed)

定义:一个事物可以读取到另一个已提交的事务所所修改的数据

问题:避免“脏读”问题,存在“不可重复读”问题(同义词数据内两次连续读到同一数据,结果不一致,因中间被其他事物修改并提交)

场景:大多数数据库的默认隔离级别

3.可重复读(repeatable read)

定义:同一事务内多次读取同一数据,结果始终一致(即使其他事物修改并提交,也看不到变化)

解决:避免“脏读”“不可重复读”,存在幻读(同意书屋内两次执行范围查询,结果行数不同,因中间被其他事物插入/删除数据)

场景:Mysql中innodb默认隔离级别

4.串行性(串行化 Seriallzable)

定义:所有事务串行执行(相当于单线程,一次只能执行一个事务)

解决:避免并发事务的所有问题

场景:并发性极差,只适用于对数据一致性要求非常高,且并发性极低的场景

Mysql中隔离级别分为全局级别(对所有新会话生效)和会话级别(仅对当前会话生效)

1.查看当前会话的隔离级别

SELECT @@transaction_isolation;(8.0版本)

select @@tx_isolation; (5.7及以下)

2.查看全局的隔离级别

SELECT @@global.transacction_isolation; (8.0版本)

select @@global_isolation; (5.7及以下)

3.修改当前会话隔离级别

set session transaction isolation level +隔离级别

4.修改全局隔离级别

set global transaction isolation level +隔离级别

隔离级别名称:

READ UNCOMMITTED (读未提交)

READ COMMITTED (读已提交)

REPEATBALE READ(重复读)
SERIALIZABLE串行性

视图:是一种虚拟的表,其定义由查询语句定义

视图本身不存储数据,而是动态引用(基表)的数据,可以把试图理解成一条预定义的select。用户通过视图来间接查询基表

核心特点:

1.虚拟性:视图没有实际的物理存储,数据都来源于定义的select所涉及的基表

2.动态性:基表数据发生变化时,视图中的数据时会变化的

3.安全性:可以通过视图暴露部分信息,隐藏基表的敏感信息

4.简化性:将复杂的查询逻辑封装成视图,无需重复编写sql,直接查视图即可

适用场景:

1.简化复杂查询:对于多表关联,子查询等复杂逻辑,可封装为视图

2.数据权限控制:只允许查看到基表中的部分信息,隐藏其他信息时可以封装为视图

3.同一数据访问接口,当基表的结构变更时(如字段名修改),可通过修改视图定义保持对外接口不变

定义视图的操作:

creat view 视图名 as select 语句

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

打开软件出现找不到vcomp140.dll文件 无法运行的情况 下载修复解决

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/5/1 5:03:30

汇编语言全接触-27.工具提示控件

我们将学习工具提示控件:它是什么如何创建和使用.下载例子理论:工具提示是当鼠标在某特定区域上停留时显示的一个矩形窗口.工具提示窗口包含一些编程者想要显示的文本.在这点上,工具提示同状态栏的作用是一样的,所不同的是工具提示当单击或者远离指定区域的时候就会消逝,你可能…

作者头像 李华
网站建设 2026/5/1 8:55:28

测试左移:构建软件质量的早期防线

在快速迭代的现代软件开发周期中,缺陷发现的时机直接影响项目成本、发布节奏与最终用户体验。传统软件测试模式中,测试活动往往集中于开发后期,导致缺陷修复成本高昂、返工风险加剧。测试左移作为一种前瞻性质量保障策略,通过将测…

作者头像 李华
网站建设 2026/5/1 8:45:00

串口通讯的android 封装开箱即用!提供源代码!

功能概述 本文档总结了在Android应用中使用serialportlibrary实现串口通讯功能的完整过程。通过本次开发,成功添加了以下核心功能: 串口设备的打开与关闭 数据的发送与接收 用户友好的操作界面 实现细节 1. UI界面修改 在activity_main.xml中添加…

作者头像 李华
网站建设 2026/5/1 9:38:59

张量并行 (Tensor Parallelism, TP) 深度解析

张量并行 (Tensor Parallelism, TP) 深度解析 1. TP 只能用于 Transformer 吗? 答案是:不,但它在 Transformer 上用得最多,也最有效。 咱们从 CV 的角度来类比。TP 的核心思想是“拆分矩阵乘法”。任何包含巨大矩阵乘法 (YX⋅WY …

作者头像 李华