PostgreSQL DBA(62) - PG 12 More progress reporting
PostgreSQL 12新增了pg_stat_progress_cluster,用以统计database的活动进度,加强了数据库的易用性.
PostgreSQL 源码解读(212)- 后台进程#11(checkpointer-SyncOneBuffer)
本节介绍了checkpoint中用于刷一个脏page的函数:SyncOneBuffer,该函数在syncing期间处理一个buffer.
PostgreSQL DBA(61) - zedstore:想说爱你不容易
本节继续介绍zedstore,在CentOS 7.4进行”大批量”(不过1000w行)数据的测试,zedstore在执行avg时直接coredump. testdb=# create table t_ap_heap (id1 int,id2 int,id3 int,id4 int,id5 int ,id6 int,id7 int,id8 int,id9 int); CREATE TABLE
PostgreSQL DBA(60) - 列式存储zedstore
本节简单介绍了Greenplum开源的列式存储zedstore的安装和使用. 安装从Github上下载源码,与普通PG一样,编译安装即可 [root@localhost postgres-zedstore]# ./configure --enable-debug --with-python --with-perl --with-tcl --with-gssapi --with-pam --wi
PostgreSQL DBA(58) - DBLink
本节介绍了contrib中的dblink插件,该插件可用于连接远程PG数据库,看起来像是Oracle的DBLink.安装进入dblink目录,make&makeinstall[root@localhostcontrib]#cddblink/[root@localhostdblink]#lsdblin
PostgreSQL DBA(55) - MVCC#8(对全表扫描的影响)
本节内容来源于PGer的一个问题:Q:由于多版本的存在,那么全表扫描是不是需要更长的时间了呢? A:关于全表扫描,不妨考虑2种极端的情况:1.insert数据(事务已提交,下同),没有执行update/delete,没有dead tuple,全表扫描效率没有影响;2.insert数据,执行了大量的update/delete,同时禁用了autovacuum也没有手工执行vacuum,那么存在大量的
PostgreSQL 源码解读(209)- 隐式类型转换(func_select_candidate)
本节简单介绍了PostgreSQL隐式类型转换中选择操作符(pg_operator)的实现函数func_select_candidate. 一、数据结构FuncCandidateList该结构体存储检索得到的所有可能选中的函数或操作符链表. /* * This structure holds a list of possible functions or operators *
PostgreSQL DBA(52) - Index(RUM)
本节简单介绍了PostgreSQL中的RUM索引,包括RUM索引的基础知识和结构等.RUM索引是GIN索引的增强版.GIN索引一是只存储词素没有存储分词后的词素的位置信息,因此在Recheck(扫描验证词素是否满足查询条件)的时候效率相对较低,二是搜索通常会按相关性的强弱排序返回,但GIN没有这些信
Challenges preventing us moving to 64 bit transaction id (XID)?
Q:Hi Pg Hackers, XID wraparound seems to be quite a big concern and we introduce changes like “adding another frozen bit to each page” [http://rhaas.blogspot.com/2016/03/no-more-full-table-vacuums.ht
PostgreSQL DBA(51) - Index(GIN)
本节简单介绍了PostgreSQL中的GIN索引,包括GIN索引的基础知识和结构等.GIN索引的主要用处是加快全文检索full-text search的速度.
PostgreSQL DBA(48) - Index(GiST)
本节简单介绍了PostgreSQL中的GiST索引,包括GiST索引的基础知识和结构等.简介GiST是generalizedsearchtree通用搜索树的简称,与Btree类似,是平衡搜索树.与Btree不同的地方在于,Btree严格与比较语义相关,支持大于/小于/等于等操作符,但对于地理信息数据
学习是一场斗争
你喜欢的学习方法不一定有效,有效的方法你不一定会喜欢,但真正有效的方法对每个人都有效,不管你喜不喜欢都有效. 总结来说,有效的方法是这样的:第一,对于一定的内容,你要在学习时间上安排一定的间隔,不要突击学习这个间隔学习法的原理是人脑的“记忆曲线”。隔一段时间回想前面学过的,然后再学新的,这个方法最有利于记忆。 第二,你可以在不同的场景下、用不同的方式学习同一个内容比如说,同一个知识点,在课堂上
PostgreSQL 源码解读(208)- 查询#121(Valid OUTER JOIN Optimizations)
Valid OUTER JOIN OptimizationsOUTER JOIN 优化手段 The planner’s treatment of outer join reordering is based on the followingidentities:规划器基于以下恒等式处理外连接: 1. (A leftjoin B on (Pab)) innerjoin C on (Pac)
PostgreSQL DBA(47) - Index(Btree)
本节简单介绍了PostgreSQL中的Btree索引,包括Btree的基本结构/NULL值处理/自定义类型支持等相关信息.
香农第二定律
下面三句话概括了香农第二定律的大意:1.信息通道的传输率R,是无论如何都无法超越信道容量C的,即R≤C;2.总能找到一种编码方式,使得传输率R无限接近信道容量C,同时保证传输不出现任何错误;3.如果谁要试图超越信道容量传输信息,无论你怎样编码,出错的概率都是100%。以浏览网页为例子来说明。服务器端把信息发送到客户端(浏览器),服务器端不会等客户端发送确认接收到的信息后才会继续发送,而是不断的发送
PostgreSQL DBA(46) - PG Operator classes and families
先前章节已简单提到pg_am,以hash为例介绍了hash index不能支持大于等于,小于等于等相关操作,我们了解到需要信息来确认访问方法接受哪些数据类型和哪些操作符.
PostgreSQL DBA(44) - Privileges & User Management - What You Should Know
本文简单介绍了PostgreSQL的权限和用户管理基础知识,原文详见PostgreSQL Privileges & User Management - What You Should Know,有所删减和调整. RolesPostgreSQL使用基于角色的权限管理系统.PostgreSQL中的用户user和角色role是一回事,区别是在创建用户时具备了LOGIN权限而角色没有,因此以下不
PostgreSQL DBA(43) - Index(Hash)
PostgreSQL支持Hash索引,本节简单介绍Hash索引的结构等相关信息.逻辑结构可以把HashIndex理解为一个HashTable,每个Hashbucket存储根据HashFunction计算得到的对应的索引条目,为了节省空间,Hash索引条目只存储HashCode(即HashValue)
PostgreSQL DBA(42) - locale
PostgreSQL在使用initdb初始化数据库时,提供了"本地化"的参数locale,如不指定该参数则默认为空,即使用OS的locale设定.
PostgreSQL DBA(41) - PG Index Properties
在PostgreSQL 9.6之后,PG提供了三个函数来判定Index AM/Index/Index Column是否具备某些属性,包括pg_indexam_has_property/pg_index_has_property/pg_index_column_has_property.