首页
学习
活动
专区
工具
TVP
发布

王硕

专栏作者
45
文章
76226
阅读量
25
订阅数
PostgreSQL窗口函数分析
今天看了一下PostgreSQL row_number的实现过程。之前一直好奇窗口函数是什么,原理是什么,今天稍稍解惑。下面就以row_number为例进行介绍: 窗口函数:
王果壳
2019-09-06
1.3K0
PostgreSQL的Page分析记录
14155641_oBuI.png        因为工作原因,最近看了一下数据库的存储相关代码,并且对《PostgreSQL数据库内核分析》、Bean_lee的帖子进行了学习。现在记录一下,以备后用。其中后半部分基本是Bean_lee原文修改的。        首先要知道的是,数据库存储是以数据文件的方式进行存储,在data/base/子目录内能看到一些以数字命名的文件,诸如:16948、16948_fsm、16948_vm等,其中16948一般是对应表的oid,但当表的数据文件被完全重写等情况时
王果壳
2018-07-06
9300
原 PostgreSQL的系统函数分析记录
PostgreSQL数据库中有许多内部函数,这次对系统表pg_proc以及函数代码进行分析记录(这里是针对9.3进行介绍的)。  一、数据库系统表pg_proc         数据库中所有内部函数信息都存储在系统表pg_proc.         内部函数都是在编译之前写好并存储在pg_proc.h文件中。         下面来看一下pg_proc的表结构,首先是看源码中的结构体: CATALOG(pg_proc,1255) BKI_BOOTSTRAP BKI_ROWTYPE_OID(81
王果壳
2018-07-06
1.7K0
原 PostgreSQL的基础数据类型分析记录
    前期,我参与了公司开发的数据库数据迁移工具的工作,以及之前的对Page的分析记录,在此进一步将数据库的数据类型做一下分析记录。     一、数据库系统表pg_type     PostgreSQL的所有数据类型都存储在系统表pg_type中。     pg_type的表结构如下(这里是从源码中进行介绍的,源码可以点击pg_type.h): CATALOG(pg_type,1247) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71) BKI_SCHEMA_MACRO {
王果壳
2018-07-06
3.2K1
原 PostgreSQL的FSM分析记录
   近来由于工作原因对PG的FSM(Free Space Map,空闲空间映射表)源码进行了学习。下面给大家简单讲述一下。         什么是FSM呢,这不得不说一下PG的存储机制了。PG的更新(更新是删除和插入的结合)和删除都是将元组(数据库对我们插入的每一行数据封装后称为元组)标记为无效,而后通过VACUUM进行物理删除。无效的元组被删除后,若是不利用那么会造成存储的浪费,但是如果遍历一遍数据库文件块(Page),以此来找到合适的空闲空间,则会造成比较大的开销。所以,空闲空间映射表FSM就应运而
王果壳
2018-07-06
1K0
原 利用pgpool实现PostgreSQL的高可用
基于流复制的方式,两节点自动切换:     1、单pgpool         a.环境: pgpool:192.168.238.129 data1:192.168.238.130 data2:192.168.238.131         b.图例         c.配置互信 ssh-copy-id ha@node1 ssh-copy-id ha@node2         d.数据库节点配置,请参照《 使用pg_basebackup搭建PostgreSQL流复制环境 》。
王果壳
2018-06-21
2.1K0
原 PostgreSQL知识树
PostgreSQL使用并学习了7-8年了,最近在梳理PostgreSQL相关知识树,个人认为数据库由关系型存储关系以及事务两大基石构成的。其次为了易用性添加了通用工具以及管理功能。 在此将数据库分为四个部分。后续还会对数据库知识进行添加,上述图片有任何问题,欢迎随时提问,谢谢。 其次希望大家关注我的码云:https://gitee.com/wangguoke/PostgreSQL/wikis/PostgreSQL%20Knowledge%20Tree github:https://github.com/w
王果壳
2018-06-13
4970
原 Postgres-X2部署步骤
Postgre2015大象会,大家都很关注PostgreSQL的集群,目前,开发人员已经转向Postgres-X2,近期根据自己和同事部署xl的过程部署了一下Postgres-X2。本次部署试验是利用pgxc_ctl部署的,更加灵活的部署集群。 1、整体概括:     一共四个节点,一个gtm,一个coordinator,两个datanode。 a. GTM节点 IP:192.168.238.129 nodename:gtm port:6666 b.c
王果壳
2018-05-17
1.3K0
原 在PostgreSQL中秒级完成大表添加带有not null属性并带有default值的实验
近期同事在讨论如何在PostgreSQL中一张大表,添加一个带有not null属性的,且具有缺省值的字段,并且要求在秒级完成。 因为此,有了以下的实验记录: 首先我们是在PostgreSQL 10下做的实验: postgres=# select version(); version ---------------
王果壳
2018-05-17
8.1K0
原 制作mobi格式的PostgreSQL文档
1、下载源代码: git clone -b REL_10_STABLE git://git.postgresql.org/git/postgresql.git pg10 cd pg10 git branch [root@localhost postgresql]# git branch * REL_10_STABLE 2、安装对应依赖包: yum install docbook-dtds docbook-style-xsl fop libxslt opensp 参考:https://www.postgres
王果壳
2018-05-17
1.1K0
原 利用系统缓存提高PostgreSQL操作效率
环境介绍:                 OS:Centos 6.4 64bit                 Database:PostgreSQL9.4                 Memory:2G                 CPU:1核 下载安装:     在pgfoundry下载pgfincore-v1.1.1.tar.gz,,将源码解压到数据库源码下的contrib下。不要在其github上下载,目前应该有一些bug,最新版本为1.1.1,1.1.2在我试用的时
王果壳
2018-05-17
1.9K0
原 使用pg_basebackup搭建PostgreSQL流复制环境
环境:     OS: [ha@node0 ~]$ uname -a Linux node0 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux     内存:1G     CPU:1核     数据库: postgres=# select version();
王果壳
2018-05-17
9720
原 透过pageinspect了解Post
        博客 PostgreSQL的Page分析记录 有过对page的 大体介绍,可以参看之前的blog,下面主要通过插件 pageinspect 向大家进行介绍。         在此之前需要了解的名词:         page,物理文件的单位,默认大小为8K。         tuple,PG中物理行。         xid,事务号,执行操作时的顺序id。         pageinspect里边有三个函数是本文用到的,他们分别是:         a.get_raw
王果壳
2018-05-17
8820
原 PostgreSQL源码中的List和ListCell的说明
首先在源码中这两个类型是这样定义的: typedef struct ListCell ListCell; typedef struct List { NodeTag type; /* T_List, T_IntList, or T_OidList */ int length; ListCell *head; ListCell *tail; } List; struct ListCell { union { void *ptr_value; int in
王果壳
2018-05-17
1.8K0
原 如何在windows下手动初始化PostgreSQL数据库
环境:win7 64 sp1 PG:9.3.5 1、创建用户postgres,密码同样是postgres: net user postgres postgres /add 2、在数据库根目录下建立data目录: C:\Program Files\PostgreSQL\9.3>md data 3、去掉administrator对data目录的权限: C:\Program Files\PostgreSQL\9.3>cacls data /e /t /r administrator 处理的目
王果壳
2018-05-17
1.9K0
原 Windows 64位下 PostgreSQL的编译
首先本文是根据权宗亮先生的 Windows 平台编译PostgreSQL 进而完成的,特此说明。       由于编译Windows下64位的PostgreSQL(下面简称PG),所需的依赖包,大部分无法直接使用,所以这里着重讲一下依赖包的编译过程(没有这些包也是可以完成编译的,但是这些辅助包能更好地将PG的)。 一、编译环境: Windows 7 旗舰版 Service Pack 1,VS2008 Express版。 二、所需下载的依赖包:   1、Perl:
王果壳
2018-05-17
1.9K0
原 PG git pull
----------------------------/home/git/repositories/postgresql.git---------------------- Fri Aug 23 02:30:01 CST 2013 Success change to /home/git/repositories/postgresql.git Fri Aug 23 02:30:01 CST 2013 Begin run git fetch >From git://git.postgresql.org/git
王果壳
2018-05-17
7340
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档