数据库面试真题

MVCC是一种多版本并发控制技术,用于确保数据库在并发访问时的一致性和并发性。它维护数据的多个版本,每个事务只能看到其可见的数据。ACID是数据库的四大特性,包括原子性、一致性、隔离性和持久性,其中AC是事务必须具备的基本属性。
摘要由CSDN通过智能技术生成

1.mvcc原理及实现

MVCC(Multi-Version Concurrency Control,多版本并发控制)是一种常见的数据库并发控制技术,用于在多个事务同时访问同一数据时保证数据的一致性和并发性。它通过维护多个版本的数据来实现并发控制,每个事务只能看到自己可见的数据版本,而不会受到其他事务的影响。

MVCC 的实现一般包括以下几个步骤:

  1. 为每个数据行维护多个版本:当一个事务更新一行数据时,不会直接修改原始数据,而是在修改之前先创建一个新版本的数据,并将该版本的数据存储到一个新的位置上,同时记录该版本的创建时间和删除时间。因此,同一行数据可能会有多个版本存在。

  2. 为每个事务维护一个事务 ID:每个事务在开始时都会被分配一个唯一的事务 ID,事务 ID 可以用于标识事务的启动时间和提交时间。

  3. 为每个数据版本维护一个版本号:每个数据版本都有一个唯一的版本号,版本号可以用于标识数据版本的创建时间和删除时间。

  4. 对于读操作,只允许读取比当前事务启动时间早或等于当前事务启动时间的数据版本,即忽略那些比当前事务启动时间晚的版本。这样可以避免读取到其他事务还未提交的数据。

  5. 对于写操作,首先需要检查要更新的数据是否已经被其他事务修改,如果已经被修改,则需要对其创建新版本,然后再进行更新操作。此外,更新操作也需要创建新版本,并将该版本的事务 ID 设置为当前事务 ID。

  6. 当事务提交时,需要将其提交时间记录到所有数据版本的删除时间中,并将其事务 ID 标记为提交状态。这样其他事务就可以读取到当前事务提交后的数据版本了。

2.acid中ac的区别

ACID 是数据库管理中的一个术语,它是指数据库管理系统需要满足的四个特性:

  1. 原子性(Atomicity):指一个事务是一个不可分割的操作单位,它要么全部执行成功,要么全部执行失败。如果在事务执行过程中发生错误,所有对数据库的操作都会回滚,使数据库保持一致状态。

  2. 一致性(Consistency):指数据库在事务执行前后都必须处于一致的状态,即满足所有的约束条件和完整性规则。

  3. 隔离性(Isolation):指每个事务在执行时都是独立的,不会被其他事务所干扰。事务之间是相互隔离的,不会相互影响。

  4. 持久性(Durability):指一个事务提交后,对数据库的修改必须永久保存,即使系统出现故障或者重启,也能够保证数据的完整性。

而 AC(即 Atomicity 和 Consistency)是 ACID 中的两个特性,它们强调了一个事务必须是原子性的和一致性的,也就是说事务必须是一个不可分割的操作单位,且执行完后数据库的状态必须是一致的。

AC 是 ACID 的两个特性中比较基本的,也是最重要的两个特性。一个数据库系统如果无法满足 AC 要求,那么就可能导致数据不一致、丢失或损坏等问题。因此,ACID 是数据库管理中非常重要的一个概念,它保证了数据库的可靠性和数据的完整性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值