news 2026/4/16 15:41:56

事务操作流程

作者头像

张小明

前端开发工程师

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/4/16 15:15:03

紫薯矮砧密植:水肥一体化系统的铺设要点纪实

红薯地里,老刘的紫薯长势喜人,薯块饱满。"这套水肥系统让我的紫薯产量提高四成,"他指着地里的滴灌设备说,"不仅省水省肥,紫薯品质还特别好。"认识紫薯矮砧密植紫薯矮砧密植,简单来说就…

作者头像 李华
网站建设 2026/4/16 13:44:51

拦截器注册InterceptorRegistry 实现讲解

1.核心概念InterceptorRegistry 是 Spring MVC 提供的拦截器注册器,用于配置拦截器的拦截规则。2.主要方法addInterceptor(): 添加拦截器 addPathPatterns(): 指定要拦截的路径 excludePathPatterns(): 指定要排除的路径 路径匹配规则 /api/**: 匹配 /api/ 下的所有…

作者头像 李华
网站建设 2026/4/16 13:44:08

软件缺少vbschs.dll文件 无法启动运行的情况 下载修复

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

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

sglang 大模型推理框架支持的EAGLE 1,2,3

文章目录EAGLE 系列模型的演进与核心机制关键参数与训练逻辑思考参考来源:https://docs.sglang.com.cn/backend/speculative_decoding.html https://github.com/SafeAILab/EAGLE EAGLE3 https://arxiv.org/pdf/2503.01840 EAGLE 系列模型的演进与核心机制 EAGLE 基…

作者头像 李华
网站建设 2026/4/16 7:33:45

验证IP地址(一)

我们先来看题目描述:给定两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不…

作者头像 李华
网站建设 2026/4/15 19:00:17

电影院购票|基于springboot 电影院购票系统(源码+数据库+文档)

电影院购票 目录 基于springboot vue电影院购票系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue电影院购票系统 一、前言 博主介绍&#xff1a…

作者头像 李华