数据仓库服务 GAUSSDB(DWS)-事务管理:事务的属性
事务的属性
事务具有以下四个标准属性,通常根据首字母缩写为ACID。
- Atomicity(原子性):事务中的全部操作在数据库中是不可分割的,整个事务中的所有操作要么全部完成,要么全部失败,对于一个事务来说,不能只执行其中的一部分操作。
比如: A给B转账,A扣除500元 ,B增加500元。整个事务的操作要么全部成功,要么全部失败,不能出现A扣钱,但是B不增加的情况。如果原子性不能保证,就会出现一致性问题。
- Consistency(一致性):在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的数据必须完全符合所有的预设规则,这包含数据的精确度、串联性以及后续数据库可以自发性地完成预定的工作。
比如:A给B转账,A扣除500元 ,B增加500元,扣除的钱-500与增加的钱+500,相加应该为0。如从A账户转账500元到B账户,不管操作成功与否,A和B的存款总额是不变的。
- Isolation(隔离性):一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(serializable)。
- Durability(持久性):一旦事务提交,则其所做的修改就会永久保存到数据库中。即使系统故障,已经提交的修改数据也不会丢失。
ACID |
属性 |
用途 |
---|---|---|
Atomicity |
原子性 |
并发控制,故障恢复。 |
Consistency |
一致性 |
SQL的完整性约束(主键约束、外键约束)。 |
Isolation |
隔离性 |
并发控制。 |
Durability |
持久性 |
故障恢复。 |
常用的并发控制技术有基于锁的并发控制和基于时间戳的并发控制, GaussDB (DWS)数据库针对DDL语句采用两阶段锁技术,而针对DML语句则采用多版本控制技术(Multi-Version Concurrency Control,MVCC)。GaussDB(DWS)数据库的故障恢复采用WAL日志的方式来实现,目前主要支持Redo日志,通过Redo日志和MVCC可以保证事务读写的一致性。
- 数据仓库服务GaussDB(DWS)_SQL on Anywhere
- DWS安全_数据仓库服务安全_DWS数据安全管理_DWS安全保障_DWS安全策略
- 调用GaussDB(DWS) API接口_数据仓库服务调用API_如何调用API_在DWS中调用API
- GAUSS(DWS)工具_gsql工具_DataStudio工具_DSC工具
- DWS产品介绍_DWS产品优势_DWS功能_DWS使用场景_DWS是什么
- GaussDB(DWS)常用SQL_常用SQL命令_SQL语法
- DWS资源管理_GaussDB(DWS)资源管理作用_DWS资源管控
- 数据库监控DMS_数据库智能运维_了解Auto Pilot_DMS_DWS节点监控
- GaussDB(DWS)服务_什么是IoT数仓_如何使用IoT数仓
- GaussDB发展_gaussdb数据库发展_高斯数据库发展_华为云