首页 > 其他分享 >openGauss MOT隔离级别

openGauss MOT隔离级别

时间:2024-04-29 16:44:05浏览次数:12  
标签:读取 READ MOT openGauss 级别 SERIALIZABLE 隔离

MOT隔离级别

即使MOT完全兼容ACID,openGauss 1.0并非支持所有的隔离级别。下表介绍了各隔离级别,以及MOT支持和不支持的内容。

表 1 隔离级别

隔离级别

说明

READ UNCOMMITTED

MOT不支持

READ COMMITTED

MOT支持

READ COMMITTED(读已提交)隔离级别保证任何正在读取的数据在上一次读取时都已提交。它只是限制读者看到任何中间数据、未提交数据,或脏读。数据被读取后可以自由更改,因此,读已提交隔离级别并不保证事务再次读取时能找到相同的数据。

SNAPSHOT

MOT不支持

SNAPSHOT(快照)隔离级别提供与SERIALIZABLE(可序列化)相同的保证,同时支持并发事务修改数据。相反,它迫使每个读者看到自己的世界版本(自己的快照)。不阻止并发更新使得编程非常容易,且可扩展性很强。然而,在许多实现中,这种隔离级别需要更高的服务器资源。

REPEATABLE READ

MOT支持

REPEATABLE READ(可重复读)是一个更高的隔离级别,除了READ COMMITTED隔离级别的保证之外,它还保证任何读取的数据都不能更改。如果一个事务再次读取相同的数据,它将找出该数据,不做更改,并且保证它可读取。

乐观模型使得并发事务能更新该事务读取的行。在提交时,该事务将验证REPEATABLE READ隔离级别是否被违反。若违反,则回滚该事务,必须重试。

SERIALIZABLE

MOT不支持

SERIALIZABLE(可序列化)隔离提供了更强的保证。除了REPEATABLE READ隔离级别保证的所有内容外,它还保证后续读取不会看到新数据。

它之所以被命名为SERIALIZABLE,是因为隔离非常严格,几乎有点像事务串行运行,而不是并行运行。

下表显示了不同隔离级别启用的并发副作用。

表 2 隔离级别启用的并发副作用

隔离级别

说明

不可重复读

幻影

READ UNCOMMITTED

READ COMMITTED

REPEATABLE READ

SNAPSHOT

SERIALIZABLE

在不久后将发布的版本中,openGauss MOT还将支持SNAPSHOT和SERIALIZABLE隔离级别。

详情查看:https://opengauss.org

详情查看:https://docs-opengauss.osinfra.cn

标签:读取,READ,MOT,openGauss,级别,SERIALIZABLE,隔离
From: https://www.cnblogs.com/techbing/p/18165840

相关文章

  • mORMot 1.18 第10章 连接表
    mORMot1.18第10章连接表如果数据库包含连接表,那么数据库将变得更加有用。假设读者已经知道何时以及为何需要单独的表,以及为何要将它们连接起来——许多关于数据库设计的书籍都详细介绍了这一点。我们不会在这里重复这些信息,甚至不会重复其中的任何子集。我们要介绍的是如何做......
  • openGauss MOT硬件
    MOT硬件本次测试使用的服务器满足10GbE组网和以下配置:基于Arm64/鲲鹏920的2路服务器,型号为TaiShan2280v2(128核),800GBRAM,1TBNVMe盘。操作系统为openEuler。基于Arm64/鲲鹏960的4路服务器,型号为TaiShan2480v2(256核),512GBRAM,1TBNVMe盘。操作系统为openEuler。戴尔x86服务......
  • openGauss MOT样例TPC-C基准
    MOT样例TPC-C基准TPC-C简介TPC-C基准是衡量联机事务处理(OLTP)系统性能的行业标准基准。它基于一个复杂的数据库和许多不同的事务类型。这些事务类型在此基准上执行。TPC-C基准测试既不依赖硬件,也不依赖软件,因此可以在每个测试平台上运行。基准模型的官方概述,见tpc.org网站(http://......
  • openGauss 查看账本历史操作记录
    查看账本历史操作记录前提条件系统中需要有审计管理员或者具有审计管理员权限的角色。数据库正常运行,并且对防篡改数据库执行了一系列增、删、改等操作,保证在查询时段内有账本操作记录结果产生。背景信息只有拥有AUDITADMIN属性的用户才可以查看账本历史操作记录。有关数......
  • openGauss 查询原生编译
    查询原生编译MOT的另一个特性是,在预编译的完整查询需要执行之前,能够以原生格式(使用PREPARE语句)准备并解析这些查询。这种原生格式方便后续更有效地执行(使用EXECUTE命令)。这种执行类型速度要快得多,因为原生格式在执行期间绕过多个数据库处理层,从而获得更好地性能。这种分工避免......
  • openGauss 创建表
    创建表背景信息表是建立在数据库中的,在不同的数据库中可以存放相同的表。甚至可以通过使用模式在同一个数据库中创建相同名称的表。创建表前请先规划存储模型。创建表执行如下命令创建表。openGauss=#CREATETABLEcustomer_t1(c_customer_skinteger,......
  • openGauss 查看数据
    查看数据使用系统表pg_tables查询数据库所有表的信息。openGauss=#SELECT*FROMpg_tables;使用gsql的\d+命令查询表的属性。openGauss=#\d+customer_t1;执行如下命令查询表customer_t1的数据量。openGauss=#SELECTcount(*)FROMcustomer_t1;执行如下命......
  • openGauss 查看数据库连接数
    查看数据库连接数背景信息当用户连接数达到上限后,无法建立新的连接。因此,当数据库管理员发现某用户无法连接到数据库时,需要查看是否连接数达到了上限。控制数据库连接的主要以下几种选项。全局的最大连接数:由运行参数max_connections指定。某用户的连接数:在创建用户时由CREAT......
  • openGauss SSL证书管理
    SSL证书管理openGauss默认配置了通过openssl生成的安全证书、私钥。并且提供证书替换的接口,方便用户进行证书的替换。证书生成-TLS证书生成-TLCP证书替换主备证书认证配置详情查看:https://opengauss.org详情查看:https://docs-opengauss.osinfra.cn......
  • openGauss 查看参数值
    查看参数值openGauss安装后,有一套默认的运行参数,为了使openGauss与业务的配合度更高,用户需要根据业务场景和数据量的大小进行GUC参数调整。操作步骤以操作系统用户omm登录数据库主节点。使用如下命令连接数据库。gsql-dpostgres-p8000postgres为需要连接的数据库名......