PostgreSQL TID及tuple slot
本文介绍PG的TID和tuple slot知识
PG11新特性解读:新增非空默认值字段不需要重写表
1、如何理解这个特性在postgresql11之前,为表增加一个包含非空默认值的字段,将会导致表重写,为每一行添加该字段,并填充默认值。如果该表在增加字段前非常大,那么将会非常耗时。而在11版本中,新增加一个功能,将不再重写表。而是将非空默认值的属性添加到系统表pg_attribute中,该表描述每一列的信息。 1)系统表pg_attribute存储所有列信息postgres=# \d
360°全方位比较PostgreSQL和MySQL
360°全方位比较PostgreSQL和MySQL
360°全方位比较PostgreSQL和MySQL一、原文https://www.enterprisedb.com/blog/postgresql-vs-mysql-360-degree-comparison二、摘要本文对MySQL和PostgreSQL进行详细的比较,方便选择。1、为什么使用PostgreSQL2、为什么使用MySQL3、易用性4、语法5、数据类型6、复制与集群7、视图8、触发器
图解PostgreSQL--buffer的分配
一、数据结构1、Buffer由数组BufferDescriptor[]数组进行管理。该数组由函数InitBufferPool创建,大小为NBuffers个成员即BufferDesc。该数组创建后由StrategyControl进行管理,firstFreeBuffer为链表头,指向链表第一个成员;lastFreeBuffer指向链表尾;所有free list中成员由freeNext串起来,该值为数组
RDMA网络下重思数据库高可用
RDMA网络下重思数据库高可用摘要高可用数据库系统常常使用用数据复制来达到容错的目的。Active-passive和active-active复制算法都是严重依赖于时延,网络常常成为性能的主要瓶颈。从某种意义上说,这些技术旨在最小化副本之间的网络通信。然而,下一代网络的出现,以期高吞吐低延迟的特性,使得需要重视这些假设。首先提出,现代RDMA网络使得瓶颈转向CPU,因此现代网络优化的复制技术不再是
NVM作为主存上对数据库管理系统的影响
NVM作为主存上对数据库管理系统的影响implications of non-volatile memory as primary storage for database management systems摘要传统的数据库管理系统使用磁盘存储关系型数据。硬盘的特点:廉价、持久性、大容量。然而,从磁盘进行读取数据代价非常高。为了消除这个延迟,需要DRAM作为中间媒介。DRAM的特点:比磁盘速度快
Oracle转换Postgres
1、前提首先需要对Oracle和PostgreSQL的SQL都比较熟悉。对其理解的越详细就越具有优势,本文帮助读者迅速理解这两类SQL的区别是什么。如果因ACS/pg而需要将Oracle移植到PG,那
Oracle转换Postgres
Oracle转换Postgres1、前提首先需要对Oracle和PostgreSQL的SQL都比较熟悉。对其理解的越详细就越具有优势,本文帮助读者迅速理解这两类SQL的区别是什么。如果因ACS/pg而需要将Oracle移植到PG,那么就需要熟悉AOLserver Tcl,尤其是SOLserver的API。本文,主要讨论:Oracle 10g到11g(大多数可以适用到8i)Oracle 12c某些方
#奋斗故事#我的南漂故事:每一次出发都为技术城堡搭建添砖加瓦
导语:在这个世界上,不是所有合理的和美好的都能按照自己的愿望存在或实现,但坚持努力把现在正做的事做好,就是对自己有了交待。南京,古称金陵,是一个风景优美的城市。与南京的邂逅起源于中兴通讯校招报到路上的
XLOG段文件跳号现象分析
一、原理当执行promote时,我们经常看到的结果是:生成一个新XLOG文件,名称为:时间线加1,段文件名为之前的段文件号。那么做这个动作的时机是什么时候呢?是否只有这一种现象,会不会有其他现象?先透
XLOG段文件跳号现象分析
一、原理当执行promote时,我们经常看到的结果是:生成一个新XLOG文件,名称为:时间线加1,段文件名为之前的段文件号。那么做这个动作的时机是什么时候呢?是否只有这一种现象,会不会有其他现象?先透露下,当执行promote动作前,最后一个XLOG日志是SWITCH时,段文件号会加1。下面我们对其流程做详细分析,并通过gdb理解其原理。 做这个动作的
PostgreSQL扫描方法综述
关系型数据库都需要产生一个最佳的执行计划从而在查询时耗费的时间和资源最少。通常情况下,所有的数据库都会产生一个以树形式的执行计划:计划树的叶子节点被称为表扫描节点。查询节点对应于从基表获取数据。例如,
PostgreSQL扫描方法综述
PostgreSQL扫描方法综述 关系型数据库都需要产生一个最佳的执行计划从而在查询时耗费的时间和资源最少。通常情况下,所有的数据库都会产生一个以树形式的执行计划:计划树的叶子节点被称为表扫描节点。查询节点对应于从基表获取数据。例如,这一个查询:SELECT *FROM TAB1,TAB2 where TAB2.ID>1000。假设计划树如下: 上
PostgreSQL WAL解析:构建WAL记录准备
以heap_insert为例,简述WAL的插入过程。在构建WAL日志记录的过程中主要涉及2个数据变量:static XLogRecData rdatas数组和static registered_buffer registered_buffers数组。这两个数组分别用来保存WAL数据和管理rdatas链表。主要涉及3个重要的函数:XLogRegisterData、XLogRegisterBuffer
PostgreSQL WAL解析:构建WAL记录准备
以heap_insert为例,简述WAL的插入过程。在构建WAL日志记录的过程中主要涉及2个数据变量:static XLogRecData rdatas数组和static registered_buffer registered_buffers数组。这两个数组分别用来保存WAL数据和管理rdatas链表。主要涉及3个重要的函数:XLogRegisterData、XLogRegisterBuffer
应用PMDK修改WAL操作使之适配持久化内存
应用PMDK修改WAL操作使之适配持久化内存这几个补丁能够通过使用PMDK对存储在持久化内存PMEM上的WAL日志进行读写。PMEM是下一代存储介质,具有一系列特性:快速、字节寻址、非易失。Pgbench是PG的通用benchmark,使用benchmark进行测试,这些补丁修改后的PG比原生PG性能提升5%。使用我们的insert benchmark,能够比原生PG快90%。下面进行详细描述。这
Postgres-XL 10R1 release版本发布
2018年10月25日2ndQuadrant发布了Postgres-XL 10R1版本。Postgres-XL是一个大规模并行数据库,它基于PG社区版本开发,并和PG高度兼容,支持Business Intelligence负载和读写大事务负载。 PG-XL完全开源。随着我们开始
Postgres-XL 10R1 release版本发布
2018年10月25日2ndQuadrant发布了Postgres-XL 10R1版本。Postgres-XL是一个大规模并行数据库,它基于PG社区版本开发,并和PG高度兼容,支持Business Intelligence负载和读写大事务负载。 PG-XL完全开源。随着我们开始
An Overview of PostgreSQL & MySQL Cross Replication
本博客的目的在于简述MySQL和PostgreSQL之间如何跨数据库进行复制。涉及跨数据库复制的databases一般被称作异构databases。这是将数据从一种RDBMS server复制到另一种server的一种很好的方法。