认识事务的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)
该级别是最严格的事务隔离。事务的串行化,表示所有事务不能并发执行,必须依次执行。在该级别下,所有事务都顺序执行,不仅可以避免脏读、不可重复读,还避免了幻读。串行
化虽然解决了所有问题,但是代价也花费最高,它会导致数据库的性能很低,在实际应用中几乎很少使用。

相关文章
|
SQL 存储 关系型数据库
数据库事务——事务的特性(ACID)
数据库事务——事务的特性(ACID)
192 0
|
27天前
|
存储 数据库 数据库管理
什么是ACID事务
【10月更文挑战第17天】什么是ACID事务
|
3月前
|
存储 SQL 数据库
什么是 ACID 特性?
【8月更文挑战第3天】
94 11
什么是 ACID 特性?
|
6月前
|
Oracle 关系型数据库 MySQL
【MySQL】事务四大特性ACID、并发事务问题、事务隔离级别
【MySQL】事务四大特性ACID、并发事务问题、事务隔离级别
108 4
|
存储 数据库
数据库事务与特性
数据库事务与特性
72 0
|
6月前
|
数据库
认识事务的ACID 特性
认识事务的ACID 特性。
44 0
|
Oracle 关系型数据库 MySQL
23JavaWeb基础 - 事务的特性
23JavaWeb基础 - 事务的特性
53 0
|
关系型数据库 MySQL 数据库
事务的基本特性和隔离级别
事务的基本特性和隔离级别
47 0
|
存储 关系型数据库 MySQL
事务的 ACID 特性|学习笔记
快速学习事务的 ACID 特性
|
存储 SQL 缓存
【数据库】事务 ACID 实现原理 - 原子性 & 持久性
数据库 ACID 实现原理,Atomicity 原子性 和 Durability 持久性实现原理
316 1