认识事务的ACID 特性

简介: 认识事务的ACID 特性。

事务有四大特征,简称ACID特性。
1.原子性(Atomicity)
2.一致性(Consistency)
3.隔离性(Isolation)
4.持久性(Durability)
Mysql数据库事务设置有4个隔离级别,根据级别的严格程度,由低到高依次为:
读未提交(Read uncommitted)
读提交(Read committed)
可重复读取(Repeatable read)
串行化(Serializable)
1.读未提交(Read uncommitted)
该级别属于未授权读取,当第一个事务开始对某行数据的进行修改,第二个事务可以读取此行数据,但是不允许进行修改。可以使用“排他锁”实现此隔离级别,后续内容会详细介绍“排它锁”。这个级别虽然禁止了多个事务并发修改某行数据,解决了“更新丢失”,但是依然会出现第二个事务读取到了第一个事务未提交的数据,导致“脏读”。
2.读提交(Read committed)
该级别属于授权读取,当第一个事务读取某行数据时,也允许第二个事务继续读取该行数据,但是如果对该行数据有未提交的写操作,则第一个事务将禁止其他事务访问该行数据。
该隔离级别解决了“脏读”的问题,但是却没有解决“不可重复读”的问题。
3.可重复读(Repeatable read)
可重复读是表示在同一个事务之内,多次读取同一行数据,其读取结果是相同的。该隔离级别被称为“可重复读”。这样避免了不可重复读取和脏读,但是仍然不能避免幻读。
4.串行化(Serializable)
该级别是最严格的事务隔离。事务的串行化,表示所有事务不能并发执行,必须依次执行。在该级别下,所有事务都顺序执行,不仅可以避免脏读、不可重复读,还避免了幻读。串行
化虽然解决了所有问题,但是代价也花费最高,它会导致数据库的性能很低,在实际应用中几乎很少使用。

相关文章
|
11月前
|
SQL 存储 关系型数据库
数据库事务——事务的特性(ACID)
数据库事务——事务的特性(ACID)
174 0
|
1月前
|
存储 SQL 数据库
什么是 ACID 特性?
【8月更文挑战第3天】
54 11
什么是 ACID 特性?
|
存储 数据库
数据库事务与特性
数据库事务与特性
62 0
|
4月前
|
数据库
认识事务的ACID 特性
认识事务的ACID 特性。
36 0
|
11月前
|
Oracle 关系型数据库 MySQL
23JavaWeb基础 - 事务的特性
23JavaWeb基础 - 事务的特性
48 0
|
11月前
|
关系型数据库 MySQL 数据库
事务的基本特性和隔离级别
事务的基本特性和隔离级别
40 0
|
存储 关系型数据库 MySQL
事务的 ACID 特性|学习笔记
快速学习事务的 ACID 特性
|
SQL 关系型数据库 MySQL
事务的ACID特性,4种隔离机制和7种传播行为
事务的ACID特性,4种隔离机制和7种传播行为
151 0
|
存储 SQL 缓存
【数据库】事务 ACID 实现原理 - 原子性 & 持久性
数据库 ACID 实现原理,Atomicity 原子性 和 Durability 持久性实现原理
300 1
|
存储 SQL Oracle
事务的ACID特性
本篇文章主要介绍事务机制: 1. 对事务进行控制 2. 事务的ACID特性
217 0