Postgresql的技术特点:
1. 支持sql。作为关系数据库,它支持sql89标准也支持部分sql92大部分功能。
2. 有丰富的数据类型。许多数据类型是一些商业数据库都没有提供的。
3. 面向对象。它包含了一些面向对象的技术,如继承和类。
4. 支持大数据库,它不同于一般的桌面数据库,能够支持几乎不受限制大小的数据库,而且性能稳定。
5. 方便集成web,提供一些接口方便 PHP,Perl等语言操作数据库。
6. 事务处理。相对一些其他免费数据库如MysqL,他提供了事务处理,可以满足一些商业领域的数据需要。
7. Postgresql运行速度明显低于MysqL。因为MysqL使用了线程,而Postgresql使用的是进程。在不同线程之间的环境转换和访问公用的存储区域显然要比在不同的进程之间要快得多。
Postgresql 可以说是最富特色的自由数据库管理系统,甚至我们也可以说是最强大的自由软件数据库管理系统。 事实上, Postgresql 的特性覆盖了 sql-2/sql-92 和 sql-3/sql-99,首先,它包括了可以说是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据库都不具备, 比如 IP 类型和几何类型等;其次,Postgresql 是全功能的自由软件数据库,很长时间以来,Postgresql 是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。直到最近才有 Inprise 的 InterBase 以及 SAP 等厂商将其原先专有软件开放为自由软件之后才打破了这个唯一。最后,Postgresql拥有一支非常活跃的开发队伍,目前的提交人员已经超过三十人, 而且在许多黑客的努力下,Postgresql 的质量日益提高,也从另外一个侧面上增加了人们使用 Postgresql 的信心,毕竟数据库管理系统不能象桌面操作系统那样 一天宕一次还让人觉得挺满意 。
从技术角度来讲,Postgresql 采用的是比较经典的 C/S (client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析客户端来的查询请求,生成规划树,进行数据检索并最终把结果格式化输出后返回给客户端。为了便于客户端的程序的编写,由数据库服务器提供了统一的客户端 C 接口。而不同的客户端接口都是源自这个 C 接口,比如 ODBC,JDBC,Python,Perl ,Tcl,C/C++,Esql 等, 同时也要指出的是,Postgresql 对接口的支持也是非常丰富的,几乎支持所有类型的数据库客户端接口。这一点也可以说是 Postgresql 一大优点。
说完优点,不能不说几句缺点,不能因为是自由软件而偏袒 Postgresql,从 Postgres 开始,Postgresql 就经受了多次变化。
首先,早期的 Postgresql 继承了几乎所有 Ingres,Postgres,Postgres95 的问题:过于学院味,因为首先它的目的是数据库研究,因此不论在稳定性, 性能还是使用方便方面,长期以来一直没有得到重视,直到 Postgresql 项目开始以后,情况才越来越好,目前,Postgresql 已经完全可以胜任任何中上规模范围内的应用范围的业务。目前有报道的生产数据库的大小已经有 TB 级的数据量,已经逼近 32 位计算的极限。不过学院味也给 Postgresql 带来一个意想不到的好处:大概因为各大学的软硬件环境差异太大的缘故,它是目前支持平台最多的数据库管理系统的一种,所支持的平台多达十几种,包括不同的系统,不同的硬件体系。至今,它仍然保持着支持平台最多的数据库管理系统的称号。
其次,Postgresql 的确还欠缺一些比较高端的数据库管理系统需要的特性,比如联机热备份,数据库集群,更优良的管理工具和更加自动化的系统优化功能 等提高数据库性能的机制等。 但是,话说回来,Postgresql 拥有极其强大的扩展能力,你可以很容易地扩展数据类型,内部函数,聚集,操作符等等,而且,别忘了,你拥有所有的源程序,理论上你可以做任何你可以做的事情。因此,很多缺点,在转瞬之间就会消失也是很正常的。
总而言之,Postgresql的特性已经完全可以满足绝大部分用户的需要,而且其质量和特性仍然在日新月异地进步着,所以, 我们有理由相信在不远的将来,Postgresql 肯定能够成为一种优秀的,自由的,商业数据库的替代产品。