openGauss-外來鍵鎖增強

MySQL成长之路發表於2024-08-29

openGauss- 外來鍵鎖增強

可獲得性

本特性自openGauss 3.0.0版本開始引入。

特性簡介

新增兩類行鎖,由share和update鎖擴充套件到key share、share、no key update和update。非主鍵的更新獲取的是no key update鎖,外來鍵觸發器獲取的行鎖為key share鎖,這兩種型別的鎖互不衝突,以此提升了外來鍵鎖的併發性。

客戶價值

絕大多數的表更新操作為非主鍵的更新,該特性有效地減少了有外來鍵約束的場景下多併發更新的阻塞,提升效率。

特性描述

當對父表一行元組的非主鍵列進行更新時,獲取no key update鎖;對子表對應元組的更新或插入,觸發外來鍵觸發器,獲取父表元組的key share鎖。兩者互不阻塞。

由於增加了互不衝突的行鎖,多事務不再只由share鎖組成,而有多種不同行鎖的組合方式,依據如下的衝突表。

鎖模式

key share

share

no key update

update

key share

X

share

X

X

no key update

X

X

X

update

X

X

X

X

特性增強

無。

特性約束

  • 新增的行鎖暫不支援ustore表

依賴關係

詳情檢視:https://opengauss.org

詳情檢視:https://docs-opengauss.osinfra.cn

相關文章