PostgreSQL的SysCache和RelCache

一,概述当我们访问数据库的表时,需要从系统表中获取一些表的相关信息。这种动作是非常频繁的,为了提高获取这些信息的效率,PostgreSQL设定了两个Cache——SysCache和RelCache。SysCache中存放的是最近使用过的系统表的元组,而RelCache中存放的是最近访问过的表的模式信息(包含系统表的信息)。简单来说,SysCache存放的是每个系统表最近使用过的元组,RelC...

PostgreSQL的VFD机制

一,VFD概述操作系统对于单个进程能打开的文件数有限制,而数据库系统的进程经常需要打开很多文件进行操作。为了避免这个限制,PostgreSQL实现了VFD(虚拟文件描述符)机制。其实质并没有改变操作系统的限制,只是每个进程维护了一个自己的LRU(Least Recently Used,近期最少使用算法)池来管理本进程打开的所有VFD。当进程需要打开文件时,就从该池中申请VFD,池中每个每个V...

PostgreSQL外存管理——表和元组的存储方式

在了解表和元组的组织方式之前,我们先简单了解下PostgreSQL里面的文件块的概念。PostgreSQL的存储管理器采用与操作系统类似的分页存储管理方式,即数据在内存中是以页面块的形式存在。每个表文件由多个BLCKSZ(一个可配置的常量,在pg_config.h中定义,默认是8KB)字节大小的文件块组成,每个文件块又可以包含多个元组(tuple),如下图所示。表文件以文件块为单位读入内存中...

Ubuntu源码安装单机版GreePlum

最近因为工作需要了解一下GreenPlum,于是便想在自己电脑上面安装一个,感受一下。可是最后发现安装起来问题很多,而且网上的教程多是多机器的部署方式,很多想自学的人很难有那样的条件(除非使用虚拟机去模拟几台机器)。少有的单机部署的文章要么是比较老,要么就是问题一大堆,或许可能是因为我用的是Ubuntu吧。所以,我把自己的安装过程记录以下,希望可以帮到别人。再次说明下我的场景:OS是Ubun...

SQL中的NULL

NULL是SQL中一个特殊的值,表示未知,在数据库中显示为空。NULL的字段不管是什么类型一般占一个bit(PostgreSQL中是这样实现的)。SQL标准对于NULL值有以下一些规定(注:基于PostgreSQL讨论,其它数据库可能有差异):凡是NULL参与的算术表达式(诸如加减乘除)运算结果均为NULL。postgres=# select 10 + NULL; ?column? --...

PostgreSQL查询执行器之查询执行策略选择

1. 查询执行策略在PostgreSQL中,用户输入的SQL语句被分为两种类型,并被两种不同的执行部件处理:(1)可优化语句(Optimizable statement)————由执行器(Executor)执行器去执行。可优化语句主要是DML语句(SELECT、INSERT、UPDATE、DELETE等),这里语句的特点是均需要查询相关满足条件的元组,然后将这些元组返回给用户,或者在这些元组...

PostgreSQL的查询处理概述

查询处理器是数据库管理系统中一个部件集合,它允许用户使用SQL语言在较高层次上表达查询,其主要职责是将用户的各种命令转化为数据库上的操作序列并执行。查询处理分为查询编译和查询执行两个阶段。查询编译的主要任务是根据用户的查询语句生成数据库中的最优执行计划,在此过程中要考虑视图、规则及表的连接路径等问题。查询执行主要考虑执行计划时所采用的算法问题。1. 查询编译器概述当PostgreSQL的后台...

PostgreSQL源码里面的List结构

PostgreSQL中广泛使用了一种List数据结构,该结构是一个单链表。其定义在pg_list.h和list.c文件中:typedef struct ListCell ListCell; typedef struct List { NodeTag type; /* T_List, T_IntList, or T_OidList */ int length; L...
站点总览
  • 文章总数:290篇
  • 分类总数:11个
  • 评论总数:460条
  • 运行时间:7年8天
最近评论
Michael翔哈哈哈,希望将来有机会学习学习你的「养娃体系1.0」和「理财体系1.0」
蟋蟀只是在本地测试,我生成的镜像名称叫flink:1.12.0-scala_2.12-java8,...
蟋蟀application模式下提交任务成功后,之前起client作用的在集群端运行的应用实例会一...
蟋蟀我在mac机器上安装好了minikube,并按照上述步骤成功构建了flink 1.12版本的d...
刘小新感谢作者的无私奉献,收获很大∠( ᐛ 」∠)_
刘小新给作者的辛苦劳动点个赞!
刘小新作者Lucene系列讲的真是太好了,佩服!!!
Peter大佬,能否加个友链呢?向您学习的
Michael翔虽然看似基础,但是深入研究并不简单,赞~PS:最后的「##总结」,语法应该少了个空格啦~
徐小鹏小米手环5的睡眠监测确实不行,