PostgreSQL修炼之道:从小工到专家. 1.1什么是PostgreSQL

    xiaoxiao2024-05-09  6

    1.1什么是PostgreSQL

    1.1.1PostgreSQL概述

    PostgreSQL数据库是目前功能最强大的开源数据库,支持丰富的数据类型(如JSON和JSONB类型、数组类型)和自定义类型。而且它提供了丰富的接口,可以很容易地扩展它的功能,如可以在GiST框架下实现自己的索引类型等,它还支持使用C语言写自定义函数、触发器,也支持使用流行的语言写自定义函数,比如其中的PL/Perl提供了使用Perl语言写自定义函数的功能,当然还有PL/Python、PL/Tcl,等等。

    1.1.2PostgreSQL的发展历史

    前身Ingres:PostgreSQL的前身是伯克利源于1977 年的 Ingres 项目。这个项目是由著名的数据库科学家Michael Stonebraker领导的。1982年,Michael Stonebraker离开伯克利大学,把Ingres商业化,使之成为 Relational Technologies 公司的一个产品。后来 Relational Tecchnologies被Computer Associates(CA)收购。Ingres 是一个非关系型的数据库。

    伯克利的 Postgres 项目:20世纪80年代,数据库系统中的一个主要问题是数据关系维护。在1985年Michael Stonebraker回到伯克利后,为了解决Ingres中的数据关系维护问题,启动了一个后Ingres(post-Ingres)的项目,这就是 POSTGRES 的开端。 POSTGRES项目是由防务高级研究项目局(DARPA)、陆军研究办公室(ARO)、国家科学基金(NSF) 以及 ESL公司共同赞助的。从1986年开始,Michael Stonebraker 教授发表了一系列论文,探讨了新的数据库的结构设计和扩展设计。第一个“演示性”系统在 1987 年便可使用了,并且在 1988 年的数据管理国际会议(ACM-SIGMOD)上展出。1989年6月发布了版本 1给一些外部的用户使用。由于源代码维护的时间日益增加,占用了太多本应用于数据库研究的时间,为减少支持的负担,伯克利的POSTGRES 项目在版本 4.2 时正式终止。

    Postgres95:在 1994 年,来自中国香港的两名伯克利的研究生Andrew Yu 和 Jolly Chen 向 POSTGRES 中增加了现在SQL 语言的解释器,将Postgres改名为 Postgres95,随后将 Postgres95 源代码发布到互联网上供大家使用。它成为一个开放源码的POSTGRES 代码的继承者。

    PostgreSQL6.X:到了 1996 年,很明显地看出“Postgres95”这个名字已经经不起时间的考验。于是起了一个新名字 PostgreSQL,为Postgres与SQL的缩写,即增加了SQL功能的Postgres的意思。同时版本号也沿用伯克利 POSTGRES 项目的顺序,从6.0开始。

    PostgreSQL7.1:PostgreSQL 7.1是继6.5版本之后又一个有巨大变化的版本,首先它引入了预写式日志的功能。这样,事务就拥有了完善的日志机制,可以提供更好的性能,还可以实现更优良的备份和灾难恢复的能力(比如联机热备份和宕机后的自动恢复)。其次是不再限制文本类型的数据段长度,这从很大程度上解决了PostgreSQL大对象的问题。

    Postgres8.X:该版本可以在Windows下运行,它具有一些新的特性。比如具有事务保存点功能、改变字段的类型、表空间、即时恢复(即时恢复允许对服务器进行连续的备份。既可以恢复到失败那个点,也可以恢复到以前的任意事务)等功能。并且开始支持Perl 服务器端编程语言。

    PostgreSQL9.X:进入9.X版本,标识着PostgreSQL进入了黄金发展阶段。2010年9月20日发布了PostgreSQL 9.0,大大增强了复制的功能(replication),比如增加了流复制功能(stream replicaction)和HOT standby功能。从9.0开始,可以很方便地搭建主从数据库。2011年9月12日发布了PostgreSQL9.1,在该版本中增加了同步复制功能(synchronous replication);2012年9月10发布了PostgreSQL9.2,增加了级连复制的功能。

    1.1.3 PostgreSQL数据库的优势

    PostgreSQL有以下优势:

    PostgreSQL数据库是目前功能最强大的开源数据库,它是最接近工业标准SQL92的查询语言,并且正在实现新的功能以兼容最新的SQL标准:SQL2003。

    稳定可靠:PostgreSQL是唯一能做到数据零丢失的开源数据库。有报道称国外的部分银行也在使用PostgreSQL数据库。

    开源省钱: PostgreSQL数据库是开源的、免费的,而且是BSD协议,在使用和二次开发上基本没有限制。

    支持广泛:PostgreSQL 数据库支持大量的主流开发语言,包括C、C++、Perl、Python、Java、Tcl,以及PHP等。

    PostgreSQL社区活跃:PostgreSQL基本上每三个月推出一个补丁版本,这意味着已知的BUG很快会被修复,有应用场景的需求也会及时得到响应。

    1.1.4 PostgreSQL应用现状和发展趋势

    PostgreSQL目前在国外很流行,特别是近几年使用PostgreSQL数据库的公司越来越多。比如,日本电信(NTT) 大量使用PostgreSQL替代Oracle数据库,并且在 PostgreSQL之上二次开发了Postgres-XC,Postgres-XC是对使用者完全兼容PostgreSQL接口的share-nothing 架构的数据库集群。网络电话公司Skype 也大量使用PostgreSQL,并贡献了一些与PostgreSQL数据库配套的开源软件:

    PL/Proxy:PostgreSQL中的数据水平拆分软件 

    pgQ:使用PostgreSQL的消息队列软件

    Londiste:用C语言实现的在PostgreSQL数据库之间进行逻辑同步的软件

    全球最大的CRM软件服务提供商Salesforce也开始使用PostgreSQL,并招募了PostgreSQL内核开发者Tom lane。

    2012年,美国联邦机构全面转向PostgreSQL阵营;法国也正积极推动政府机构采用PostgreSQL数据库,从而取代商业数据库。

    在国内,越来越多的公司开始使用PostgreSQL,如斯凯网络(股票代码:MOBI)的后台数据库基本使用的都是PostgreSQL数据库,去哪儿网(qunar.com)也大量使用了PostgreSQL数据库。

    主流的云服务提供商如亚马逊、阿里云的RDS(关系型数据库服务)同样提供了PostgreSQL的支持。

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)