避免死結或將死結數目降至最低
在關聯式資料庫系統(RDBMS)中,死結是指無法進行兩個並行交易的情况,因為每個交易都在等待對方釋放鎖定。在本系列的第 1 部分中,我們知道了什麼是關聯式資料庫中的物件鎖定、不同類型的鎖定和死結。然後,在第 2 部分中,我們比較了封閉式鎖定與開放式鎖定的利弊。在本篇文章中,我們將探討造成死結的一些原因,以及避免死結或至少將死結數目降至最低的策略。
封閉式與開放式鎖定
關聯式資料庫系統(RDBMS)在修改(例如,更新或删除)資料表記錄時採用各種鎖定策略來強制執行交易 ACID 特性。有時,當兩個並行交易都在等待對方釋放鎖定而無法進行時,可能會發生死結。在本系列的第 1 部分中,我們知道了什麼是關聯式資料庫中的物件鎖定、不同類型的鎖定和死結。在本篇後續文章中,我們將比較封閉式和開放式鎖定的利弊。
第 1 部分:概覽、鎖定資料粒度和死結
最近,我們有一些關於資料庫交易的文章,有關強制執行四個 ACID 特性(原子性、一致性、隔離性、持久性)。在今天的文章中,我們將研究關聯式資料庫(RDBMS)用於強制 ACID 特性的另一種機制,即物件鎖定。具體來說,我們將了解它是什麼,它在 RDBMS 交易中扮演什麼角色,以及鎖定可能造成的一些副作用。雖然資料庫物件鎖定可能是一個相當技術性和複雜的題目,但我們會以淺白的用語解釋它,並盡可能保持簡單易明。
早在 2020 年 8 月,SQL Count() 函式的多種變體文章概述了 COUNT 的許多輸入參數變化。使用 COUNT() 函式的另一種方法是將其與 GROUP BY 子句一起使用。將 COUNT() 函式與 GROUP BY 結合使用,可以根據不同的分組來細分計數。在今天的文章中,我們將學習如何使用 Navicat Premium 作為資料庫用戶端査詢 Sakila 範例資料庫,根據不同的準則分組計數。
- 2025 (1)
- 2024 (1)
- 2023 (1)
- 2022 (1)
- 2021 (1)
- 2020 (1)
- 2019 (1)
- 2018 (1)
- 2017 (1)