PostgreSQL中Tuple可见性判断分析

技术PostgreSQL中Tuple可见性判断分析本篇内容主要讲解“PostgreSQL中Tuple可见性判断分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Postgre

本文主要讲解“PostgreSQL中Tuple可见性判断分析”,感兴趣的朋友不妨看一下。本文介绍的方法简单、快速、实用。让边肖带你学习“PostgreSQL中Tuple可见性的判断与分析”!

一、xmin/xmax是当前事务

Tuple.xmin或xmax为当前交易的情况,交易状态为IN_PROGRESS,其判断逻辑如下:插入未提交.

如果xmin==当前事务,则

如果xmax==当前事务,则

元组是不可见的

其他

元组可见

如果…就会结束

如果…就会结束

以下示例显示了:

15:40:39(xdb @[本地]:5432)testdb=#

15:40:40(xdb @[local]:5432)testdb=# begin;

开始

15:40:44(xdb @[local]:5432)testdb=# * insertintot _ session 1 values(1);

INSERT01

15:40:52(xdb @[local]:5432)testdb=# * updatet _ session 1 setid=0;

更新1

15:41:02(xdb @[local]:5432)testdb=# * selectlp,lp_off,t_xmin,t _ xmax from heap _ page _ items(get _ raw _ page(' t _ session 1 ',0));

lp|lp_off|t_xmin|t_xmax

- - - -

1 | 8160 | 2370 | 2370-2370插入数据,2370更新数据,元组是不可见的。

2 | 8128 | 2370 | 0-2370更新数据,元组可见。

插入已提交

如果xmax==当前事务,则

元组是不可见的

如果…就会结束

15:41:11(xdb @[local]:5432)testdb=# * delete from _ session 1;

删除1

15:41:36(xdb @[local]:5432)testdb=# * selectlp,lp_off,t_xmin,t _ xmax from heap _ page _ items(get _ raw _ page(' t _ session 1 ',0));

lp|lp_off|t_xmin|t_xmax

- - - -

1 | 8160 | 2370 | 2370-2370更新此元组,它不可见。

2 | 8128 | 2370 | 2370-2370删除此元组,它不可见。

(2条线)

15:41:38(xdb @[local]:5432)testdb=# * commit;

COMMIT note :在这种情况下(xmax==当前事务),xmin状态不能被中止,因为不可能更新/删除不存在的元组(未提交的事务可以视为不存在)。

00-1010xmin和xmax不是当前事务,假设快照为st1:st23360xip [],其判断逻辑如下:

如果圣诞节。状态==已提交,然后

If xmax ST1 xmax。状态==已提交,然后

元组是不可见的

如果xmax XIP[] xmax。状态==已提交,然后

元组是不可见的

其他

元组可见

如果…就会结束

其他

元组是不可见的

如果…就会结束

至此,相信大家对“PostgreSQL中Tuple可见性判断与分析”有了更深的理解,让我们一起来实践吧!这是网站。更多相关内容,可以去相关渠道查询,关注我们,继续学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/78651.html

(0)

相关推荐

  • 环境搭建

    技术环境搭建 环境搭建1.卸载JDK直接删除Java的安装目录
    删除环境变量中的JAVA_HOME
    删除path下的关于Java的目录
    打开命令提示符输入java -version进行确认2.安装JDK

    礼包 2021年11月27日
  • 火柴英文,火柴的发展历史是怎样的

    技术火柴英文,火柴的发展历史是怎样的火柴(英文名火柴英文:Match),也称“安全火柴”。根据记载最早的火柴是由中国人在公元577年发明的(一种引火的材料,不是火柴),当时是南北朝时期火柴,战事四起,北齐腹背受敌,物资短

    生活 2021年10月25日
  • 安装rac时需要注意的问题有哪些

    技术安装rac时需要注意的问题有哪些这篇文章将为大家详细讲解有关安装rac时需要注意的问题有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。安装rac时需要注意的问题1.虚拟机添加共

    攻略 2021年11月10日
  • c++面试题(c++和Python哪个好)

    技术如何进行C++模板显式具体化的分析如何进行C++模板显式具体化的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。模板函数虽然非常好用,但是也存在一些问

    攻略 2021年12月18日
  • 怎么使用MySQL中的select、distinct、limit

    技术怎么使用MySQL中的select、distinct、limit这篇文章主要讲解了“怎么使用MySQL中的select、distinct、limit”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路

    攻略 2021年11月10日
  • Nginx下请求本机另外Host很慢怎么办

    技术Nginx下请求本机另外Host很慢怎么办这篇文章给大家分享的是有关Nginx下请求本机另外Host很慢怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。现象在本机安装了一个Discuz

    攻略 2021年11月24日