Recent Posts

MySQL & PostgreSQL choice

11 minute read

背景 本周末阿里巴巴PG技术峰会将有一个MySQL & PostgreSQL的讨论环节,旨在揭示各自的优缺点,为用户在做数据库选型时提供参考。报名的同学不要错过,未报名参加的同学届时可以关注一下会议结束后发布的文章。 本文主要参考wikivs上的MySQL vs PostgreSQL(这个文章目前来说是...

PostgreSQL use UDF combine NoSQL DB’s Computing Power

less than 1 minute read

背景 PostgreSQL数据库如何利用NoSQL数据库的强大计算能力或某些特性呢? 这个问题实际上是因为一种数据库不可能做到适合任何场景,一个企业的不同业务类型可能使用的数据产品也千差万别。昨天和一位朋友聊到一个应用场景,他们有部分数据是存储在aerospike的,在aerospike中做BIT运算是很快的,...

use PostgreSQL trigger manage stock & offer infomation

2 minute read

背景 使用触发器来管理订单和库存信息,可以简化数据交互过程。这个例子来自postgresql server programming。 例如 库存表存储一家水果超市的水果的库存总量数据,以及已供应的量数据,库存总量必须大于等于已供应的量。 订单数据表存储每一笔水果的订单信息。 涉及的操作包括新增订单,修改订...

pg_locks.virtualxid & transactionid

5 minute read

背景 在pg_locks中,你可能会注意到两个字段virtualxid和transactionid,这两个字段到底有什么分别呢? Table 48-61. pg_locks Columns Name Type References Descrip...

PostgreSQL earth distance module

4 minute read

背景 PostgreSQL提供了一个扩展模块earthdistance,实际上是将地球构造为一个标准的圆球体(实际上是扁球体),利用cube或point来表示地球上的点。 其中cube是用来记录球坐标的,通过坐标来表示地球上的点。(实际上是做了一定约束的cube, 即域类型earth) -- Define d...

online DDL (or NOWAIT DDL) in PostgreSQL

8 minute read

背景 为什么需要online DDL呢?或者nowait DDL呢? PostgreSQL为了保证一个请求不至于无休止的等待锁,锁等待使用了队列机制,并且这个在等待队列中的锁也会和以后的会话将要请求的锁发生冲突。 虽然解决了无休止的等待问题,同时也带来一个比较棘手的问题。 例如, 当数据库中存在一个长事务...