事务的 ACID 特性|学习笔记

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 快速学习事务的 ACID 特性

开发者学堂课程【MySQL 实操课程事务的 ACID 特性】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/717/detail/12813


事务的 ACID 特性

 

目录:

一、MySQL 事务管理主要内容

二、事务的 ACID 特性

三、MySQL 对事务的支持

 

一、MySQL 事务管理主要内容

MySQL 事务管理主要分成以下四部分:

1、事务的 ACID 特性

什么是事务、事务的特性、ACID 特性的特点等内容。

2、MySQL 下事务的开启、提交、回滚语句应用

MySQL 下默认处理事务的策略;MySQL 默认处理事务是采用自动提交的方式;调整策略;事务开启后做提交和回滚等手动处理。

3、MySQL 事务下 truncate 和delete 的差异

前面课程中学习过 truncate 和 delete 删除数据的两种方式,并且做对比。那么,在 MySQL 事务下 truncate 和 delete 的操作有什么差异。

4、MySQL 下事务的四种隔离级别

每一种隔离级别的定义和力度;对于数据操作时的表现形式等。

 

二、事务的 ACID 特性

1、什么是事务

事务是对数据库连续的操作。一般这种操作涉及到对数据更新处理。这些更新操作是不可分割的逻辑单元。如果事务被成功的执行,那事务中所有的更新操作都会被成功的执行,并将执行的结果提交到数据库文件中,成为数据库永久的组成部分。如果该事物执行失败,那这个事务所有的操作都会被撤销,也就是所有的工作都失效。简单理解,事务中的所有操作要么全部执行,要么全部都不执行。

2、事务的 ACID 特性包括以下几点:

(1)原子性 (Atomicity)

事务中包含的所有操作要么都做 ,要么都不做,保证数据库是一致的

类似于银行系统的转账业务。如张三转给李四100元,张三扣减100,李四增加100。这个操作过程需要确保张三扣减100和李四增加100的操作同时执行。不能出现张三扣了100,而李四没有加收100的情况。转账的操作就是事务的原子性操作。

(2)一致性 (Consistency)

数据库中的数据在事务操作前和事务处理后必须满足业务规则约束

比如,转账操作。一致性确保事务操作前后的状态一致。张三扣减100和李四增加100最终的总金额是一致的。

(3)隔离性 (Isolation)

允许多个并发事务同时对数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。

如:在数据库里不只有一个数据库在连接对数据库进行操作。同时可能会有多个操作。这多个操作就是多个并发的事务,并发事务之间不影响彼此独立的对数据进行读写修改,互不影响。

(4)持久性 (Durability)

事务处理结束后 ,对数据的修改是永久的,即便系统发生故障也不会丢失。

事务一旦提交后,这个事务过程中的所有操作就会被持久化。持久化就是成功的写入到数据库的文件系统里面。MySQL 本身就是最终持久化到磁盘里。持久化到磁盘后,不管是遇到 MySQL 重启、盗机或者其他问题,只要磁盘上的数据没有被损坏,MySQL 重新启动后数据依然存在。

 

三、MySQL 对事务的支持

1、MySQL 支持对 MyISAM 和 MEMORY 存储引擎的表进行表级锁定,对 BDB 存储引擎的表进行页级锁定,对 InnoDB 存储引擎的表进行行级锁定。

(1) MyISAM 主要是锁表,一旦开启一个事务,MyISAM 下是对整个表锁定,后续其他的 MySQL 客户端连接想操作这张表的数据,就必需等待解锁后。

(2) InnoDB 主要是行级锁定。在其他客户端只要操作的不是锁定的同一行数据,其他均可正常操作。

2、默认情况下,表锁和行锁都是自动获得的,不需要额外的命令。但是在有些情况下,用户需要明确地进行锁表或者进行事务控制,以确保整个事务的完整性,这样就需要事务控制和锁定语句来完成。

比如,默认 InnoDB 进行行级锁定,只能满足默认行锁定。某些情况希望进行锁表操作,这就需要用户显示的操作。

 

 

 

 

 

 

 

 

 

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
SQL 存储 关系型数据库
数据库事务——事务的特性(ACID)
数据库事务——事务的特性(ACID)
192 0
|
3月前
|
存储 SQL 数据库
什么是 ACID 特性?
【8月更文挑战第3天】
93 11
什么是 ACID 特性?
|
5月前
|
SQL 安全 关系型数据库
MySQL数据库——事务-简介、事务操作、四大特性、并发事务问题、事务隔离级别
MySQL数据库——事务-简介、事务操作、四大特性、并发事务问题、事务隔离级别
85 1
|
关系型数据库 数据库
数据库如何保证事务的ACID特性?
数据库如何保证事务的ACID特性?
117 0
|
存储 数据库
数据库事务与特性
数据库事务与特性
72 0
|
6月前
|
数据库
认识事务的ACID 特性
认识事务的ACID 特性。
44 0
|
Oracle 关系型数据库 MySQL
23JavaWeb基础 - 事务的特性
23JavaWeb基础 - 事务的特性
53 0
|
关系型数据库 MySQL 数据库
事务的基本特性和隔离级别
事务的基本特性和隔离级别
46 0
|
SQL 关系型数据库 MySQL
事务的四大特性(ACID)| 学习笔记
快速学习事务的四大特性(ACID)。
138 0
事务的四大特性(ACID)| 学习笔记
|
SQL 关系型数据库 MySQL
事务的四大特性(ACID)|学习笔记
快速学习事务的四大特性(ACID)
102 0
事务的四大特性(ACID)|学习笔记