南大通用GBase 8c数据一致性验证

122 阅读2分钟

原文链接:www.gbase.cn/community/p…

更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

GBase 8c采用MVCC(多版本并发控制)技术,实现读写不冲突,提升读写并行处理能力。支持多重机制保证数据一致性。

下文对读已提交、可重复读两种隔离级别进行测试验证。

1、读已提交
默认隔离级别查询:

select name,setting from pg_settings where name='default_transaction_isolation';

创建测试表AMOUNT:

CREATE TABLE AMOUNT (
id  varchar(10),
money numeric(6,2)
)
distribute by hash(id) 
to group default_group;

插入测试数据:

insert into amount(id,money) values('A', 800);
insert into amount(id,money) values('B', 200);
insert into amount(id,money) values('C', 1000);

session1,测试读已提交,插入数据:

START TRANSACTION ISOLATION LEVEL read committed;  
insert into amount(id,money) values('D', 1000);

开启session2查询数据,只能查到前3行,未提交的D查不到:

select * from amount;

session1,提交事务

commit;

session2中查询数据,能查看到D数据:

select * from amount;

2、可重复读 repeatable read

创建测试表AMOUNT

drop table AMOUNT;
CREATE TABLE AMOUNT (
id  varchar(10),
money numeric(6,2)
)
distribute by hash(id) 
to group default_group;

插入测试数据

insert into amount(id,money) values('A', 800);
insert into amount(id,money) values('B', 200);
insert into amount(id,money) values('C', 1000);
select * from amount;

session1,测试可重复读,插入数据

begin isolation level repeatable read;
select * from amount;

开启session2,插入D数据

insert into amount(id,money) values('D', 1000);
select * from amount;

session1查询数据,可以重复查看之前的数据

select * from amount;

原文链接:www.gbase.cn/community/p…

更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。