三十一、事务控制

简介: 三十一、事务控制

一、什么是事务控存储

事务是指作为一个逻辑工作单元执行的一些列操作,这些操作要么全部成功,要么全部失败。事务确保对多个数据的修改作为一个单元来处理。


在 MySQL 中,只有使用了 Innodb 存储引擎的数据库或表才支持事务;

事务用于维护数据库的完整性,保证成批的 sql 语句要么都执行,要么都不执行;

事务用于管理 INSERT、UPDATE、DELETE 语句。

二、事务的四个特性

如果某个数据库声称支持事务,那么该数据库必须具备 ACID 四个特性,即 Atomicity(原子性)、Consistency (一致性)、 Isolation (隔离性) 和 Durability (持久性)。


  1. 原子性:事务必须是原子工作单元,事务中包含的个操作要么都做,要么都不做。
  2. 一致性:事务在执行完成时,必须使所有的数据都保持一致状态。
  3. 隔离性:事务独立运行,多个事务之间相互隔离互不干扰。事务的100%隔离会牺牲速度。
  4. 持久性:事务执行完成后,它对系统的影响是永久性的。

三、MySQL 的事务控制

在默认情况下, MySQL 是自动提交事务的,即每一条 INSERT、UPDATE、DELETE SQL 语句提交后会立即执行 COMMIT 操作。因此要开启一个事务,可以使用 start transaction 或 begin ,或者将 autocommit 的值设为 0 。常见事务语法如下:

# 开启事务
begin
# 提交事务
commit;
# 回滚事务
rollback;


目录
相关文章
|
5月前
|
Java 程序员 数据库连接
女朋友不懂Spring事务原理,今天给她讲清楚了!
该文章讲述了如何解释Spring事务管理的基本原理,特别是针对女朋友在面试中遇到的问题。文章首先通过一个简单的例子引入了传统事务处理的方式,然后详细讨论了Spring事务管理的实现机制。
女朋友不懂Spring事务原理,今天给她讲清楚了!
|
8月前
|
存储 安全 关系型数据库
理解数据库事务的用处
【5月更文挑战第18天】数据库事务确保数据ACID特性,即原子性、一致性、隔离性和持久性。事务控制通过原子性保证操作全做或全不做,一致性维护数据完整性,隔离性防止并发问题,持久性确保提交后变更永久。事务故障恢复通过逆操作撤销,系统故障恢复在重启时自动重做或撤销事务。介质故障和病毒破坏需结合备份和日志恢复。检查点技术加速恢复,记录检查点时的事务清单和日志地址。
68 0
理解数据库事务的用处
|
8月前
|
存储 Java 关系型数据库
Java核心-事务
Java核心-事务
45 0
|
消息中间件 Java Kafka
Spring 事务的独门绝技:钩子函数的使用技巧
经过前面对Spring AOP、事务的总结,我们已经对它们有了一个比较感性的认知了。今天,我继续安利一个独门绝技:Spring 事务的钩子函数。单纯的讲技术可能比较枯燥乏味。接下来,我将以一个实际的案例来描述Spring事务钩子函数的正确使用姿势。
Spring 事务的独门绝技:钩子函数的使用技巧
|
SQL 存储 数据库
C#三十三 事务
C#三十三 事务
58 0
|
SQL 存储 Java
Spring事务畅谈 —— 由浅入深彻底弄懂 @Transactional注解(2)
Spring事务畅谈 —— 由浅入深彻底弄懂 @Transactional注解
439 1
|
消息中间件 JavaScript 小程序
多线程如何实现事务回滚?一招帮你搞定!
多线程如何实现事务回滚?一招帮你搞定!
多线程如何实现事务回滚?一招帮你搞定!
|
消息中间件 Java 关系型数据库
Spring事务畅谈 —— 由浅入深彻底弄懂 @Transactional注解(1)
Spring事务畅谈 —— 由浅入深彻底弄懂 @Transactional注解
4023 0
|
Java 关系型数据库 MySQL
面试突击88:加入事务和嵌套事务有什么区别?
面试突击88:加入事务和嵌套事务有什么区别?
336 2
|
存储 设计模式 Java
《我要进大厂》- Spring事务 夺命连环8问,你能坚持到第几问?(Spring事务篇)(一)
《我要进大厂》- Spring事务 夺命连环8问,你能坚持到第几问?(Spring事务篇)
《我要进大厂》- Spring事务 夺命连环8问,你能坚持到第几问?(Spring事务篇)(一)