这篇文章主要介绍“PostgreSQL中元组可见性判断的基本逻辑是什么",在日常操作中,相信很多人在一种数据库系统中元组可见性判断的基本逻辑是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“PostgreSQL中元组可见性判断的基本逻辑是什么"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
判断逻辑
((Xmin==my-由当前事务插入的事务
在此命令之前输入我的命令,并且
(Xmax为空| |该行尚未删除,或者
(Xmax==my-transaction)它已被当前事务删除
Cmax=my-command)))但不是在这个命令之前,
||或
(Xmin已提交该行是由已提交的事务插入的,并且
(Xmax为空| |该行尚未删除,或者
(Xmax==my-transaction该行正被该事务删除
Cmax=my-command)| |但它尚未"删除",或者
(Xmax!我的交易该行已被另一个事务删除
Xmax未提交))))尚未提交
其中我的命令在宜在家长指导下观看的中通过cmin/cmax体现cmin/cmax
如下例所示,游标在删除命令前定义,因此元组可见。
10:51:21(xdb @[local]:5432)testdb=# delete from VCC _ demo;
删除3
10:51:22(xdb @[local]:5432)testdb=#
10:51:22(xdb @[local]:5432)testdb=# BEGINWORK;
开始
10:51:22(xdb @[local]:5432)testdb=# * INSERTINTOmvcc _ demo值(1);
INSERT01
10:51:22(xdb @[local]:5432)testdb=# * INSERTINTOmvcc _ demo值(2);
INSERT01
10:51:22(xdb @[local]:5432)testdb=# * INSERTINTOmvcc _ demo值(3);
INSERT01
10:51:22(xdb @[local]:5432)testdb=# * SELECTxmin,cmin,xmax,cmax,* FROMmvcc _ demo
xmin|cmin|xmax|cmax|val
- - - - -
2400|0|0|0|1
2400|1|0|1|2
2400|2|0|2|3
(3行)
10:51:23(xdb @[local]:5432)testdb=# * Declarec _ mvcc _ Democursor
[本地]xdb@testdb-#SELECTxmin,cmin,xmax,cmax,* FROMmvcc _ demo-定义游标
解密光标
10:51:34(xdb @[local]:5432)testdb=# * delete from VCC _ demo;-删除数据
删除3
10:51:34(xdb @[local]:5432)testdb=# * SELECTxmin,cmin,xmax,cmax,* FROMmvcc _ demo
xmin|cmin|xmax|cmax|val
- - - - -
(0行)
10:51:35(xdb @[local]:5432)testdb=# * fetchalfromc _ mvcc _ demo;-游标在删除命令前定义,因此可见
xmin|cmin|xmax|cmax|val
- - - - -
2400|0|2400|0|1
2400|1|2400|1|2
2400|2|2400|2|3
(3行)到此,关于“PostgreSQL中元组可见性判断的基本逻辑是什么"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/81160.html