gaussdb的事务

举报
yd_261177225 发表于 2024/04/24 16:36:46 2024/04/24
【摘要】 概念是数据库中的一个重要概念,它是一个不可分割的工作单位,由一个或多个操作组成。这些操作要么全部执行,要么全部不执行,不能部分执行。事务的目的是确保数据库的一致性和完整性。事务具有四个基本特性,简称ACID特性:原子性(Atomicity)。事务是一个原子性的操作单元,即事务中的所有操作要么全部执行,要么全部不执行。一致性(Consistency)。事务的执行结果是使数据库从一个一致性状态转...

概念

是数据库中的一个重要概念,它是一个不可分割的工作单位,由一个或多个操作组成。这些操作要么全部执行,要么全部不执行,不能部分执行。事务的目的是确保数据库的一致性和完整性。

事务具有四个基本特性,简称ACID特性:

  • 原子性(Atomicity)。事务是一个原子性的操作单元,即事务中的所有操作要么全部执行,要么全部不执行。
  • 一致性(Consistency)。事务的执行结果是使数据库从一个一致性状态转换到另一个一致性状态,确保数据库的完整性约束始终得到满足。
  • 隔离性(Isolation)。事务的执行不受其他事务的干扰,即事务之间是隔离的,它们并发执行,但彼此之间看不到对方的中问结果。
  • 持久性(Durability)。一旦事务提交,其对数据库的改变就是永久性的,即使系统发生故障,已提交的事务结果也不会丢失。 


事务隔离级别

标准的 SQL 标准定义了四个事务隔离级别,分别是:

  • 读未提交(Read Uncommitted):一个事务可以读取其他事务尚未提交的数据。这可能导致脏读、不可重复读和幻读等并发问题。
  • 读已提交(Read Committed): 一个事务只能读取已经提交的数据。这可以避免脏读问题,但仍然可能存在不可重复读和幻读问题。
  • 可重复读(Repeatable Read): 一个事务在执行过程中多次读取相同的数据时,能够保证数据不会被其他事务修改。这可以避免脏读和不可重复读,但仍然可能存在幻读问题。
  • 串行化(Serializable): 事务会按顺序一个接一个地执行,不允许并发执行。这可以避免脏读、不可重复读和幻读等并发问题,但会降低系统的并发性能。

相关概念补充

  • 脏读(Dirty Read): 脏读是指一个事务读取了另一个事务尚未提交的数据。如果这个事务后来回滚了,那么之前读取的数据就是无效或不正确的。脏读可以破坏数据的一致性和准确性。
  • 不可重复读(Non-repeatable Read): 不可重复读是指在一个事务内,同一查询在不同时间点多次执行,但返回的结果却不同。这可能是因为其他事务在查询之间修改了数据。不可重复读可以导致事务无法依赖于之前读取的数据,从而影响一致性。
  • 幻读(Phantom Read): 幻读是指在一个事务内,同一查询在不同时间点多次执行,但返回的结果却不同,因为其他事务在查询之间插入了新的数据。幻读与不可重复读的区别在于,幻读涉及到新增的数据行,而不仅仅是已存在的数据行的更新。 


gaussdb的事务

gaussdb支持以下两种隔离级别

    RC:(READ COMMITTED)读已提交隔离级别; RR:(REPEATABLE READ)可重复读隔离级别

事务的管理

    gaussdb中使用全局事务管理器(GTM)进行事务管理

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。