Recent Posts

PostgreSQL 黑科技 range 类型及 gist index 20x+ speedup than Mysql index combine query

5 minute read

背景 一位社区的兄弟跟我抱怨MYSQL里面查IP地址库并发几千每秒的查询数据库就抗不住了。 于是问他要来了他们的IP地址库数据和查询用的SQL以及MYSQL里面的表结构。 把数据转到PostgreSQL里面做一下相对应的压力测试,看看PostgreSQL的表现。 在其他的业务中,这样的需求也是屡见不鲜,比如...

PostgreSQL 函数封装 - Wrap Function code like Oracle package

1 minute read

背景 封装函数主要是为了隐藏函数体的内容(业务逻辑),这个在Oracle里面是通过package来实现的. 在PostgreSQL里面, 原生是不带这个功能的, 但是EnterpriseDB的AS版本支持这一操作, 通过edbwrap可以实现代码的封装. 另一方面,PostgreSQL可以找一下社区版本的函...

PostgreSQL plpgsql function debugging module : pldebugger

less than 1 minute read

背景 以前写过一篇PostgreSQL 函数调试环境搭建的BLOG 《PostgreSQL 9.1.3 plpgsql debugger module》 http://blog.163.com/digoal@126/blog/static/163877040201222011550296/ 源码来源比较老,...

Londiste 3 replicate case - 1 下节

20 minute read

背景 上节URL 《Londiste 3 replicate case - 1 上节》 接下来测试一下复制是否正确, 在主节点上开启pgbench做数据更改的压力测试. postgres@db5-> cat login.sql \setrandom userid 1 200000 selec...

Londiste 3 replicate case - 1 上节

18 minute read

背景 前面讲解过Londiste3的安装, 有不了解的朋友可以参考如下BLOG: 《Londiste3 Install》 今天将介绍一下使用londiste3, 从PostgreSQL 9.1.3 复制表以及序列到PostgreSQL 9.2beta1. (这种场景的复制使用PostgreSQL的流复制是办不...

Londiste3 Install

1 minute read

背景 Skytools是一个比较成熟的套件, 包含了pgq, Londiste, wal-manager三大组件. 其中pgq由providers,ticker,consumers组成, provider push events to queue, consumer read events from queue...

PostgreSQL nestloop/hash/merge join讲解

4 minute read

背景 PostgreSQL 9.2 beta1 release notes中指出 Improve the planner’s ability to use nested loops with inner index scans. 到目前为止我还不是特别肯定这句话到底是不是要说PostgreSQL 9.2 支持...

PostgreSQL 9.2 improve prepared statements plan’s selectivity

3 minute read

背景 PostgreSQL 9.2 beta的release note中提到9.2 中prepared statements选择执行计划时, 将根据输入的参数值计算出走generic plan的COST, 如果这个COST值与generic plan执行计划的COST值接近或更小时将直接走generic plan...

PostgreSQL 9.2 add array elements statistics

3 minute read

背景 PostgreSQL 9.2 在统计信息中增加了 array类型中 element的统计信息,以提供给优化器参考。 例如@>, &&, 和<@ 操作符的使用更加优化。 以下是PostgreSQL 9.1 的pg_stats包含的列信息 digoal=# \d pg_sta...