mysql mvcc与锁的关系_mysql四种隔离级别和mvcc以及锁之间的关系

本文介绍了事务的ACID特性,特别是隔离性,及其在MySQL中的四种隔离级别:未提交读、提交读、可重复读和序列化。重点讲解了可重复读级别下如何通过MVCC和锁实现并发控制,以及MVCC的工作原理,包括行的额外信息如DATA_TRX_ID和DATA_ROLL_PTR。此外,还概述了MySQL中的锁类型,如乐观锁、悲观锁、共享锁、排他锁、行锁和表锁,以及它们在不同场景下的应用。
摘要由CSDN通过智能技术生成

什么是事务的隔离级别

隔离级别:理解隔离级别之前需要先了解事务的四个特性,分别是:

A(Atomic):原子性是指数据库的事务是一个不可分割的工作单位,只有数据库事务都成功才算成功,任何一个SQL的失败,数据库状态都必须回退到事务开始前的状态

C(Consistence):一致性是指事务将数据库的状态从一种状态转变为下一个一致的状态。在事务的开始和结束后,数据库的完整性约束都没有被破坏。

I(Isolation):隔离性是指事务之间对数据对象的读写是相互隔离的,具体是提交后可见还是提交后也不可见取决于隔离等级,前面两种情况分别为提交读(RC)和可重复读(RR)。

D(持久性):持久性是指事务一旦提交,其修改是永久性的,即使还未写入磁盘时发生宕机,也能恢复数据。

由上面对事务隔离性的描述可以知道,事务的隔离级别主要是用来控制多事务并发时的数据可见性,即在一个事务开始后,能否看到另一个事务更新或插入的数据。

事务的隔离级别有四种:

READ-UNCOMMITTED(未提交读):一个事务可以读取到另一个事务未提交的数据,如果事务回滚时,会发生脏读(对错误数据进行了处理)

READ-COMMITTED(提交读):不会读到另一个事务未提交事务的数据,但是如果事务提交以后,再次查询,两次查询的数据不一致(在一个事务中,两次查询的数据不一致),也叫不可重复读。

REPEATABLE-READ(可重复读):同一个事务中,不论另一个事务是否删除、更新、插入,本次查询的数据一致(快照读,

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值