数据库的事务及MVCC详解

1. 什么是数据库的事务?

事务是数据库管理系统(DBMS)执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。
从这条定义中我们知道,第一个就是这个最小的一个工作单元,不可分割。第二就是它包含一系列的操作,增删改查。当然,单条的SQL也是有事务的!
最常见的例子就是,转账!小明给小红转100块,转账的过程中涉及到一系列的操作,小明的账户要先进行查询,然后减100块,更新余额。然后小红的账户要加100,在更新余额。这一系列的操作是一体的。不可分割的!

2. 在MySQL中哪些存储引擎支持事务

查看MySQL官方文档我们知道Innodb是支持事务的,还有一个就是NDB.

3. 事务的四大特性

  • A:原子性,Atomicity,我们对数据库的一系列操作,要么都成功要么都失败。不能出现部分成功或者部分失败的情况。
  • C:一致性,Consistency,事务执行的前后都是合法的数据状态。
  • I:隔离性,Isolation,数据库中会有很多的事务同时去操作同一张表或者同一行数据,他们之间是相互隔离的,互不干扰的。
  • D:持久性,Durable,对数据库任务的操作,增删改,当事务提交后,结果是永久性的。

4. 事务并发会带来什么样的问题?

  1. 脏读:一个事务读到其他事务没有提交的数据
    在这里插入图片描述
  2. 不可重复读:一个事务读到其他事务已经提交的数据
    在这里插入图片描述
  3. 幻读:一个事务读到其他事务插入的数据
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值