我亲爱的朋友们,今天让我们来讨论下 PostgreSQL 以及该数据库最有用的一些扩展。
PostgreSQL 是一个关系型数据库管理系统,主要特点:
今天我们主要介绍最后一个特性,下面让我们来看一些 PostgreSQL 的扩展。
PostPic 是 PostgreSQL 数据库的扩展,用来在数据库内进行图像处理,PostPic 为 SQL 增加了 image 类型,还包含很多相关的函数用来处理图片以及从图片中抽取对应的属性。
PL/Proxy和PostgreSQL集群的结构关系可以用下图清楚地表示

Texcaller 是 TeX 命令行工具的编程接口,采用纯 C 编写的可移植库,无需外部依赖。
PgMemcache 是一组 PostgreSQL 用户自定义函数提供了访问 memcached 缓存服务器的接口。安装 pgmemcache 很简单,但需要一些额外的琐碎要求:libmemcached 必须是 0.38 或者更新版本,PostgreSQL 必须是 8.4 或者更新版本。该扩展提供了 memcached 数据的读写、搜索和删除。
http://pgfoundry.org/projects/prefix
prefix 模块实现了文本的前缀匹配操作,支持索引典型的写法:
SELECT * FROM osc_prefixes WHERE prefix @> ’0123456789′ ORDER BY length(prefix::text) LIMIT 1
pgSphere 为 PostgreSQL 数据库提供球面数据类型,函数,和运算函数。
Multicorn 是一个 PostgreSQL 9.1+ 的扩展模块,用于简化外部数据封装开发,允许开发者使用 Python 编程语言开发。
http://www.postgresql.org/docs/9.1/static/hstore.html
该模块为 PostgreSQL 提供存储Key-Value数据的功能,你可以定义 hstore 数据列来存储这样的数据,并可对这些数据进行分组、排序和唯一检索的查询。
http://www.postgresql.org/docs/9.1/static/intarray.html
intarray 模块提供一系列有用的函数和运算用于操作整数数组,同时支持索引搜索。
如果数组中包含 null 元素,那么所有的这些操作都将抛出错误。当我开发一个简单的图像比较功能时,我会使用这个扩展 (http://leopard.in.ua/2010/12/09/bystroe-sravnenie-izobrazhenij-s-pomoshhyu-rubyphp-i-postgresql/, 俄文).
http://www.postgresql.org/docs/9.1/static/dblink.html
Dblink 让你可以在 PostgreSQL 连接会话中支持连接到其他 PG 数据库,同时支持自主事务 autonomous transactions (like in Oracle).
That’s all folks!