【MySQL】MySQL事务保姆级教程(适合MySQL初学者学习)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 【MySQL】MySQL事务保姆级教程(适合MySQL初学者学习)

🌟前言


无论是在校招、社招,亦或者大学计算机专业、软件工程等相关面试或者考试中,MySQL事务的相关知识都是必不可少的。本文主要为MySQL初学者快速学习MySQL事务保驾护航。


🌟事务的定义及作用


定义:事务是一个不可再此分割的最小工作单元。换句话说事务通常代表一个完整的业务或者业务线。通俗来说,一个业务功能所包含的操作,要么全部成功,要么全部失败。

作用:


  • 为数据库的操作或者一个完整的业务功能提供一个从失败操作中恢复到正常状态的方法,同时保证数据库操作在异常状态下保持一致性。
  • 防止多个应用程序并发访问数据库时,多个应用程序间的操作产生干扰,影响业务功能的正常性。

🌟事务的特性(ACID)


  • 原子性(Atomicity):事务必须是最小的工作单元,一个事务中的所有操作,应该做到:要么全部成功,要么全部失败,否则回滚到初始状态。
  • 一致性(Consistency):事务在开始和结束时,数据必须保持一致状态。通俗说就是让数据保持逻辑上的“合理性”,比如:小明给小红打100块钱,既要让小明的账户减少100,又要让小红的账户上增加100块钱;
  • 隔离性(Isolation):事务的隔离性确保并发执行的事务彼此之间相互隔离,每个事务都感觉不到其他并发事务的存在。独立执行,互不干扰。
  • 持久性(Durability):事务一旦执行成功,数据将会永久保存到数据库中。

🌟事务的隔离级别


隔离级别一览表


隔离级别 描述 现象
读未提交(Read Uncommitted) 最低隔离级别,一个事务可以读取另一个未提交事务的数据。 脏读、不可重复读、幻读都可能发生。
读已提交(Read Committed) 一个事务只能读取已提交事务的数据。 脏读不会发生,但不可重复读和幻读仍然可能发生。
可重复读(Repeatable Read) MySQL默认隔离级别,一个事务在执行过程中多次读取同一行的数据结果都是一致的 脏读和不可重复读不会发生,但幻读仍然可能发生。
串行化(Serializable) 最高隔离级别,对于同一份数据资源同时只允许一个事务进行读写操作。 脏读、不可重复读和幻读都不会发生。


隔离级别举例解读


我们下面来对每个隔离级别,提出具体的例子进行解读,供大家理解。所有的例子都以下表为基础。串行化就不做出具体例子说明了。

id product_name price
1 手机 1000
2 电脑 2000
3 平板 800


读未提交


1.A查询价格表:select * from price;

2.B修改价格表中平板的价格为100,但是并未提交:update set price=100 where id=3;

3.A再次查询价格表时,平板的价格会显示100。


读已提交


1.A查询价格表:select * from price;

2.B修改价格表中平板的价格为200,并提交:update set price=200 where id=3;

3.A再次查询价格表时,平板的价格会显示200。


可重复读


1.A查询价格表:select * from price;

2.B修改价格表中平板的价格为300,并提交:update set price=300 where id=3;

3.A查询价格表时,平板的价格依然是原数据80。


🌟事务控制语句


控制语句 描述
BEGINSTART TRANSACTION 开始一个新的事务
COMMIT 提交当前事务的修改,使其生效,并永久保存到数据库中
ROLLBACK 回滚当前事务的修改,取消事务所做的所有修改
SAVEPOINT savepoint_name 创建一个保存点,用于回滚到特定的保存点
RELEASE SAVEPOINT savepoint_name 删除指定的保存点
ROLLBACK TO SAVEPOINT savepoint_name 回滚到指定的保存点,并取消保存点之后的所有修改


🌟写在最后


最后感谢大家对于本篇博文的阅读,如有不足之处还请大家在评论区留言,以便后续发布更适合大家学习的博文。


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
21天前
|
存储 Oracle 关系型数据库
Oracle和MySQL有哪些区别?从基本特性、技术选型、字段类型、事务、语句等角度详细对比Oracle和MySQL
从基本特性、技术选型、字段类型、事务提交方式、SQL语句、分页方法等方面对比Oracle和MySQL的区别。
Oracle和MySQL有哪些区别?从基本特性、技术选型、字段类型、事务、语句等角度详细对比Oracle和MySQL
|
28天前
|
SQL 关系型数据库 MySQL
MySQL基础:事务
本文详细介绍了数据库事务的概念及操作,包括事务的定义、开启、提交与回滚。事务作为一组不可分割的操作集合,确保了数据的一致性和完整性。文章还探讨了事务的四大特性(原子性、一致性、隔离性、持久性),并分析了并发事务可能引发的问题及其解决方案,如脏读、不可重复读和幻读。最后,详细讲解了不同事务隔离级别的特点和应用场景。
88 4
MySQL基础:事务
|
5天前
|
SQL Oracle 关系型数据库
详解 MySQL 的事务以及隔离级别
详解 MySQL 的事务以及隔离级别
11 0
|
1月前
|
SQL 关系型数据库 MySQL
学习MySQL操作的有效方法
学习MySQL操作的有效方法
33 3
|
1月前
|
SQL 关系型数据库 MySQL
如何学习 MySQL?
如何学习 MySQL?
26 3
|
2月前
|
API C# 开发框架
WPF与Web服务集成大揭秘:手把手教你调用RESTful API,客户端与服务器端优劣对比全解析!
【8月更文挑战第31天】在现代软件开发中,WPF 和 Web 服务各具特色。WPF 以其出色的界面展示能力受到欢迎,而 Web 服务则凭借跨平台和易维护性在互联网应用中占有一席之地。本文探讨了 WPF 如何通过 HttpClient 类调用 RESTful API,并展示了基于 ASP.NET Core 的 Web 服务如何实现同样的功能。通过对比分析,揭示了两者各自的优缺点:WPF 客户端直接处理数据,减轻服务器负担,但需处理网络异常;Web 服务则能利用服务器端功能如缓存和权限验证,但可能增加服务器负载。希望本文能帮助开发者根据具体需求选择合适的技术方案。
68 0
|
2月前
|
C# Windows 监控
WPF应用跨界成长秘籍:深度揭秘如何与Windows服务完美交互,扩展功能无界限!
【8月更文挑战第31天】WPF(Windows Presentation Foundation)是 .NET 框架下的图形界面技术,具有丰富的界面设计和灵活的客户端功能。在某些场景下,WPF 应用需与 Windows 服务交互以实现后台任务处理、系统监控等功能。本文探讨了两者交互的方法,并通过示例代码展示了如何扩展 WPF 应用的功能。首先介绍了 Windows 服务的基础知识,然后阐述了创建 Windows 服务、设计通信接口及 WPF 客户端调用服务的具体步骤。通过合理的交互设计,WPF 应用可获得更强的后台处理能力和系统级操作权限,提升应用的整体性能。
69 0
|
2月前
|
存储 关系型数据库 MySQL
MySQL 中的事务存储引擎深入解析
【8月更文挑战第31天】
28 0
|
2月前
|
SQL 关系型数据库 MySQL
PHP与MySQL交互之基础教程
【8月更文挑战第31天】 在数字世界中,数据是推动一切的核心力量。本文将引导你探索PHP与MySQL的协同工作,通过实际代码示例,展示如何建立连接、执行查询以及处理结果集。无论你是初学者还是希望巩固知识的开发者,这篇文章都将为你提供宝贵的实践知识。
|
2月前
|
关系型数据库 MySQL 网络安全
MySQL主从复制详细教程
配置MySQL的主从复制是一个细致的过程,需要仔细遵循上述步骤进行。一旦配置完成并运行正常,主从复制将大大提高数据库的可用性和读写性能。在操作过程中,务必保持谨慎,确保数据的一致性和安全性。
136 0
下一篇
无影云桌面