避免死锁或将死锁减至最少
在关系数据库系统(RDBMS)中,死锁是两个并发事务无法进行的情况,因为每个事务都在等待另一个释放锁定。在本系列的第 1 部分中,我们知道了什么是关系数据库中的对象锁定、不同类型的锁定和死锁。然后,在第 2 部分中,我们比较了悲观锁定和乐观锁定的优缺点。在本篇文章中,我们将探讨导致死锁的几个原因,以及避免死锁或至少将死锁减至最少的策略。
悲观与乐观锁定
关系数据库系统(RDBMS)在修改(例如,更新或删除)表记录时采用各种锁定策略来强制实施事务 ACID 属性。有时,当两个并发事务无法进行时,可能会发生死锁,因为每个事务都在等待对方释放锁定。在本系列的第 1 部分中,我们知道了什么是关系数据库中的对象锁定、不同类型的锁定和死锁。在今天的后续文章中,我们将比较悲观锁定和乐观锁定的优缺点。
第 1 部分:概述、锁粒度和死锁
最近,我们有一些关于数据库事务的文章,有关强制执行四个 ACID 属性(原子性、一致性、隔离性、持久性)。在今天的文章中,我们将研究关系数据库(RDBMS)用于强制执行 ACID 属性的另一种机制,即对象锁定。具体来说,我们将了解它是什么,它在 RDBMS 事务中扮演什么角色,以及锁定可能导致的一些副作用。虽然数据库对象锁定可能是一个相当技术性和复杂的主题,但我们会以浅白的用语解释它并尽可能简单易明。
Navicat 文章
频道条目
分享
文章归档
- 2024 (1)
- 2023 (1)
- 2022 (1)
- 2021 (1)
- 2020 (1)
- 2019 (1)
- 2018 (1)
- 2017 (1)