openGauss企业级特性介绍:外键锁增强

2023年 9月 27日 56.7k 0

可获得性

本特性自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表

依赖关系

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论