MySql学习笔记(ACID、隔离级别)

本文详细介绍了数据库事务的ACID特性:原子性、一致性、隔离性和持久性,以及四种事务隔离级别:READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ和SERIALIZABLE,探讨了每种级别的特点及可能产生的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ACID

原子行(atomicity)

一个事务中的所有操作要么全成功,要么全部失败回滚

一致性(consistency)

从一个一致性状态转到另一个一致性的状态
在事务执行过程中出现系统崩溃等状态,表中信息也不会有所改变,因为没有被提交

隔离性(isolation)

当一个事务所做的修改在最终提交以前,对其他事务是不可见的。

持久性(durability)

当事务一旦被提交,就会永久的保存在数据库中

隔离级别

READ UNCOMMITTED(未提交读/脏读)

在该级别中,对事务中的内容进行修改,即使是没有提交,对其他事务也都是可见的,这样会出现脏读的情况

READ COMMITTED(提交读/不可重复读)

一个事务开始时,只能“看见”已经提交的事务所做的修改
例如一个事务A开始读某一个表是一条数据,另一个事务B对这个表增加一条数据,并且提交。这时事务A再查找会发现两条数据。那么第一个事务A两次读到的的数据可能是不一样的,因此称为是不可重复读

REPEATABLE READ(可重复读)

该级别保证了在同一个事务中多次读取同样记录的结果是一致的

SERIALIZABLE(可串行化)

最高级别,通过强制事务串行执行,避免了幻读,会在读取的每一行数据上都加锁,所以可能导致大量的超时和锁争用问题

隔离级别脏读可能性不可重复读可能性幻读可能性加锁读
READ UNCOMMITTEDyesyesyesno
READ COMMITTEDnoyesyesno
REPEATABLE READnonoyesno
SERIALIZABLEnononoyes
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值