签到成功

知道了

CNDBA社区CNDBA社区

PostgreSQL 学习笔记(1) -- PG 概述

2022-12-05 11:03 1364 0 原创 PostgreSQL
作者: dave

1 PG 概述

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

https://www.cndba.cn/dave/article/116370

PG 官网如下:
https://www.postgresql.org/

2 历史

PostgreSQL经历了长时间的演变。该项目最初开始于在加利福尼亚大学伯克利分校的Ingres计划。这个计划的领导者迈克尔·斯通布雷克在1982年离开加利福尼亚大学伯克利分校去推进Ingres的商业化,但最后还是返回了学术界。在1985年返回伯克利之后,斯通布雷克开始了post-Ingres计划,致力于解决在1980年代早期所出现一些数据库系统存在的问题。Postgres和Ingres的代码库开始(并保持)完全分离。https://www.cndba.cn/dave/article/116370https://www.cndba.cn/dave/article/116370

新项目Postgres的目的是通过增加最少的功能来完全支持所需要的类型。这些功能包括类型定义和完整描述数据关系的能力。完整描述数据关系的能力之前虽广为使用但却需要由用户来维护。Postgres的数据库能够”理解”关系,并可以使用一定的规则以自然方式在相关的表中检索信息。https://www.cndba.cn/dave/article/116370

从1986年开始,该项目组发表了一些描述这一系统基本原理的论文,并在1988年实现并运行了一个Demo版本。项目组在1989年六月向少数用户发行了版本1.0,随后在1990年6月发行了带有全新规则系统的版本2.0。1991年的版本3.0再次重写了规则系统,并增加了对多个存储管理器的支持与改进的查询引擎。Postgres在1993年开始拥有大量用户,这些用户提供了大量的功能与优化建议。但是在发行了作为细节修正的版本4.0之后,Postgres计划就终止了。https://www.cndba.cn/dave/article/116370https://www.cndba.cn/dave/article/116370

https://www.cndba.cn/dave/article/116370
https://www.cndba.cn/dave/article/116370
https://www.cndba.cn/dave/article/116370

尽管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记录格式

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2262
    原创
  • 3
    翻译
  • 578
    转载
  • 192
    评论
  • 访问:8081012次
  • 积分:4349
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ