1 PG 概述
PostgreSQL数据库是目前功能最强大的开源数据库,支持丰富的数据类型(如JSON和JSONB类型、数组类型)和自定义类型。而且它提供了丰富的接口,可以很容易地扩展它的功能,如可以在GiST框架下实现自己的索引类型等,它还支持使用C语言写自定义函数、触发器,也支持使用流行的语言写自定义函数,比如其中的PL/Perl提供了使用Perl语言写自定义函数的功能等。
PG 官网如下:
https://www.postgresql.org/
2 历史
PostgreSQL经历了长时间的演变。该项目最初开始于在加利福尼亚大学伯克利分校的Ingres计划。这个计划的领导者迈克尔·斯通布雷克在1982年离开加利福尼亚大学伯克利分校去推进Ingres的商业化,但最后还是返回了学术界。在1985年返回伯克利之后,斯通布雷克开始了post-Ingres计划,致力于解决在1980年代早期所出现一些数据库系统存在的问题。Postgres和Ingres的代码库开始(并保持)完全分离。
新项目Postgres的目的是通过增加最少的功能来完全支持所需要的类型。这些功能包括类型定义和完整描述数据关系的能力。完整描述数据关系的能力之前虽广为使用但却需要由用户来维护。Postgres的数据库能够”理解”关系,并可以使用一定的规则以自然方式在相关的表中检索信息。
从1986年开始,该项目组发表了一些描述这一系统基本原理的论文,并在1988年实现并运行了一个Demo版本。项目组在1989年六月向少数用户发行了版本1.0,随后在1990年6月发行了带有全新规则系统的版本2.0。1991年的版本3.0再次重写了规则系统,并增加了对多个存储管理器的支持与改进的查询引擎。Postgres在1993年开始拥有大量用户,这些用户提供了大量的功能与优化建议。但是在发行了作为细节修正的版本4.0之后,Postgres计划就终止了。
尽管Postgres计划正式的终止了,BSD许可证(Postgres遵守BSD许可证发行)却使开发者们得以获取源代码并进一步开发系统。1994年,两个加利福尼亚大学伯克利分校的研究生 Andrew Yu和Jolly Chen 增加了一个SQL语言解释器来替代早先的基于Ingres的QUEL系统,创建了Postgres95。代码随后被发布到互联网上供全世界使用。Postgres95在1996年被重命名为PostgreSQL以便突出该数据库全新的SQL查询语言。
3 PG 版本发布信息
1977年 Michael Stonebraker 教授领导开发 Ingres 项目
1982年 Ingres 商业化,成为 Relational Technologies 公司的一个产品
1985年 Michael Stonebraker重返伯克利大学,领导POSTGRES项目
1987年 第一个"demoware"系统可以使用,并且在1988年的ACM-SIGMOD大会上展出
1989年 向少数用户发布了第 1 版
1990年 发布了重新编写规则系统的第 2 版
1991年 发布的第 3 版再次重新编写了规则系统,并增加了对多个用户的支持存储管理器和改进的查询引擎
1993年 伯克利的 POSTGRES 项目终止内部研发,交由开源社区进行后续的开发及代码维护
1994年 向PG中增加了SQL语言的解释器,源代码公开发布
1996年 PostgreSQL.org 网站开始在线展示
Bruce Momjian和Vadim B. Mikheev发布基于开源社区PostgreSQL 6
1997年 PostgreSQL6.2发布,增加JDBC接口、触发器、服务器编程接口、约束
PostgreSQL 6.1版本发布
PostgreSQL 的第一个正式版本6.0形成
1998年 PostgreSQL6.4发布,增加PL/pgSQL
PostgreSQL6.3发布,增加SQL-92 子选择能力、PL/pgTCL
1999年 PostgreSQL6.5发布,增加MVCC、临时表、更多 SQL 语句支持
2000年 PostgreSQL7.0发布,增加外键,用于连接的 SQL-92 语法
2001年 PostgreSQL7.1发布,增加预写日志,外部连接
2002年 PostgreSQL7.3发布,增加模式、表函数
PostgreSQL7.2发布,增加PL/Python,不再需要OID
2003年 PostgreSQL7.4发布,增加JOIN 和数据仓库功能的优化
2005年 PostgreSQL8.1发布,增加性能优化、两阶段提交、表分区、索引位图扫描、共享行锁定
PostgreSQL8.0发布,增加保存点,表空间,时间点恢复
2006年 PostgreSQL8.2发布,增加性能优化、在线索引构建、热备用
2008年 PostgreSQL8.3发布,增加仅堆元组、全文搜索、SQL/XML、ENUM 类型
2009年 PostgreSQL8.4发布,增加窗口函数、列级权限、并行数据库还原、每个数据库排序
2010年 PostgreSQL9.0发布,增加内置二进制流复制、热备、就地升级能力
2011年 PostgreSQL9.1发布,增加同步复制、每列排序规则、未记录表、可序列化快照隔离等功能
2012年 PostgreSQL9.2发布,增加级联流复制、仅索引扫描、原生JSON支持、改进的锁管理、范围类型
2013年 PostgreSQL9.3发布,增加自定义后台工作程序、数据校验和、专用 JSON 运算符、LATE
2014年 PostgreSQL9.4发布,增加JSONB 数据类型,用于更改配置值的 ALTER SYSTEM
2016年 PostgreSQL9.6发布,增加并行查询支持,PostgreSQL 外部数据包装器 (FDW)
PostgreSQL9.5发布,增加 UPSERT、行级安全性、TABLESAMPLE
2017年 PostgreSQL10发布,增加逻辑复制、声明性表分区、改进的查询并行性
2018年 PostgreSQL11发布,增强的查询并行能力、存储过程中支持的事务
2019年 PostgreSQL12发布,查询性能和空间利用率的改进;SQL/JSON 路径表达式支持
2020年 PostgreSQL13发布,从 B 树索引条目的重复数据删除中节省空间和提高性能
2021年 PostgreSQL14发布,为公共表表达式添加了 SQL 标准的 SEARCH
2022年 PostgreSQL 15正式发布。改进排序算法、支持MERGE命令、引入新的jsonlog记录格式
版权声明:本文为博主原创文章,未经博主允许不得转载。