PostgreSQL:概述
This commit is contained in:
parent
d2b7f9c085
commit
6f93401818
8
wiki/database-system/PostgreSQL/_category_.json
Normal file
8
wiki/database-system/PostgreSQL/_category_.json
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"label": "PostgreSQL",
|
||||||
|
"position": 3,
|
||||||
|
"link": {
|
||||||
|
"type": "generated-index",
|
||||||
|
"title": "PostgreSQL"
|
||||||
|
}
|
||||||
|
}
|
106
wiki/database-system/PostgreSQL/概述.md
Normal file
106
wiki/database-system/PostgreSQL/概述.md
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
---
|
||||||
|
title: 概述
|
||||||
|
description: Postgresql 概述
|
||||||
|
keywords:
|
||||||
|
- Postgresql
|
||||||
|
- 概述
|
||||||
|
tags:
|
||||||
|
- Postgresql
|
||||||
|
sidebar_position: 1
|
||||||
|
author: 7Wate
|
||||||
|
date: 2023-09-11
|
||||||
|
---
|
||||||
|
|
||||||
|
## 序言
|
||||||
|
|
||||||
|
[PostgreSQL](https://www.postgresql.org/about/),起源于加利福尼亚大学伯克利分校的 POSTGRES 项目,始于 1986 年。该项目由计算机科学教授 Michael Stonebraker 领导,他在数据库领域的贡献也促成了其他关系数据库系统的诞生。
|
||||||
|
|
||||||
|
Michael Stonebraker 教授是 PostgreSQL 的创始人。他的愿景是设计一个既灵活又可扩展的数据库系统,能够支持多种数据模型和查询语言。与其他关系型数据库相比,PostgreSQL 的独特之处在于其开放和扩展性。它不仅支持许多标准 SQL 的特性,还允许用户自定义数据类型、操作符和函数。
|
||||||
|
|
||||||
|
## 历史
|
||||||
|
|
||||||
|
PostgreSQL 的发展历程反映了其对技术创新和社区驱动的承诺:
|
||||||
|
|
||||||
|
- **POSTGRES (1989)**:这是 PostgreSQL 的前身,其主要创新在于支持用户定义的数据类型和面向对象的特性。
|
||||||
|
- **PostgreSQL 6.x (1996)**:此时,POSTGRES 项目更名为 PostgreSQL,标志着其对 SQL 标准的更深入支持。这个版本开始,它扩展到了多种操作系统平台,并建立了一个更加活跃的开发者社区。
|
||||||
|
- **PostgreSQL 7.x (2000s)**:这个版本增强了对外部过程的支持,并引入了更加先进的查询优化器。
|
||||||
|
- **PostgreSQL 8.x (2005)**:这是 PostgreSQL 首次支持 Windows 平台的版本。它还新增了点对点复制和表空间的功能。
|
||||||
|
- **PostgreSQL 9.x (2010s)**:这个版本带来了众多创新,包括流复制、列式存储和对 JSON 数据类型的支持。
|
||||||
|
- **PostgreSQL 10.x (2017)**:这个版本开始,PostgreSQL 的版本号发生了变化,主要版本号只增加第一个数字。例如,从 9.6 直接跳到了 10。
|
||||||
|
- **PostgreSQL 11.x (2018)**:此版本进一步增强了分区表的功能,并引入了并行执行的存储过程。
|
||||||
|
- **PostgreSQL 12.x (2019)**:引入了对 SQL/JSON 路径语言的支持,提供了更好的索引和分区。
|
||||||
|
- **PostgreSQL 13.x (2020)**:增加了并行化的增量排序和聚合功能,以及对 B树索引的改进。
|
||||||
|
- **PostgreSQL 14.x (2021)**:此版本带来了对长事务的性能改进,以及对复制和分区的增强。
|
||||||
|
- **PostgreSQL 15.x (2022)**:发布于 2022 年 10 月 13 日,带来了一系列的新特性和改进。
|
||||||
|
- **PostgreSQL 16.x (2023)**:计划于 2023 年 9 月 14 日发布,目前已经发布了 RC1 版本。
|
||||||
|
|
||||||
|
与其他关系数据库相比,**PostgreSQL 一直强调其对开放性、扩展性和标准的遵循**。与 MySQL、Oracle 和 SQL Server 等数据库相比,它被视为一个功能丰富但需要一定学习投入的选择。
|
||||||
|
|
||||||
|
## 特点
|
||||||
|
|
||||||
|
作为世界上最先进的开源关系数据库,PostgreSQL 具有以下显著特点:
|
||||||
|
|
||||||
|
1. **数据类型**:支持标准及用户自定义数据类型,增强应用灵活性。
|
||||||
|
2. **扩展性**:允许添加自定义函数、数据类型和聚合函数,实现高度定制。
|
||||||
|
3. **事务性**:全面遵循 ACID 原则,确保数据完整性。
|
||||||
|
4. **并发控制**:利用 MVCC 技术,优化高并发下的读写性能。
|
||||||
|
5. **安全性**:集成 SSL、行级安全性和强大的访问控制。
|
||||||
|
|
||||||
|
### 优势与挑战
|
||||||
|
|
||||||
|
尽管 PostgreSQL 有许多优势,但它也面临一些挑战:
|
||||||
|
|
||||||
|
**优势**:
|
||||||
|
|
||||||
|
1. **开源 & 免费**:功能丰富且完全免费。
|
||||||
|
2. **高度扩展性**:支持广泛的自定义功能。
|
||||||
|
3. **社区支持**:得益于活跃的全球社区。
|
||||||
|
4. **功能丰富**:支持如 JSON 存储、全文搜索等高级特性,并有众多插件。
|
||||||
|
5. **跨平台**:兼容 Linux、Windows 和 macOS。
|
||||||
|
|
||||||
|
**挑战**:
|
||||||
|
|
||||||
|
1. **性能比较**:在特定场景下,可能不及 Oracle 或 SQL Server。
|
||||||
|
2. **大型应用适应性**:大型企业应用可能需要额外优化。
|
||||||
|
3. **学习曲线**:功能丰富可能导致新手上手难度增加。
|
||||||
|
|
||||||
|
### 发布策略
|
||||||
|
|
||||||
|
PostgreSQL 通常每年发布一次主要版本,并根据需要发布小的补丁更新。新版本的发布是基于特性完成度而不是预定的时间表,这确保了每个版本的高质量和稳定性。
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
graph LR
|
||||||
|
A[PostgreSQL 发布规则]
|
||||||
|
B[小版本发布]
|
||||||
|
C[主要版本发布]
|
||||||
|
D[小版本发布周期]
|
||||||
|
E[主要版本发布日期]
|
||||||
|
F[小版本发布目标日期]
|
||||||
|
G[下一个主要版本]
|
||||||
|
|
||||||
|
A --> B
|
||||||
|
A --> C
|
||||||
|
B --> D
|
||||||
|
B --> F
|
||||||
|
C --> E
|
||||||
|
C --> G
|
||||||
|
C --> H
|
||||||
|
|
||||||
|
D[每个季度至少发布一次小版本]
|
||||||
|
F[目标日期:每年的 2 月、5 月、8 月和 11 月的第二个星期四]
|
||||||
|
E[每年一次发布一次主要版本]
|
||||||
|
G[计划在 2023 年第三季度发布 16 版本]
|
||||||
|
H[主要版本提供 5 年技术支持]
|
||||||
|
```
|
||||||
|
|
||||||
|
## 文化
|
||||||
|
|
||||||
|
**PostgreSQL 拥有一个非常活跃的全球社区,由数千名开发者、用户和志愿者组成。**这个社区不仅贡献代码,还提供技术支持、文档编写和培训。
|
||||||
|
|
||||||
|
**社区坚守开放、共享和合作的原则,这些原则影响了其开发和决策过程,确保了项目的透明性和公正性。**每年,社区都会举办多次活动,如年度的 PostgreSQL 会议、地方性的聚会和线上研讨会。这些活动促进了社区成员之间的交流和合作,也为新成员提供了了解和参与社区的机会。
|
||||||
|
|
||||||
|
所有的决策,无论是关于新功能的开发、bug 修复还是其他项目管理事项,都是在邮件列表、IRC 频道或其他公开论坛上进行的。这确保了**所有的利益相关者都有机会参与和发表意见。**
|
||||||
|
|
||||||
|
**PostgreSQL 社区成功地平衡了开源精神与商业需求。**虽然 PostgreSQL 是一个开源项目,但它也与许多商业公司合作,提供商业支持和解决方案。社区也与其他数据库社区,如 MySQL 和 MariaDB,有着友好的关系,经常在技术和开发上互相学习和合作。
|
||||||
|
|
||||||
|
尽管社区非常活跃和成功,但它仍然面临一些挑战,如技术挑战、社区管理挑战等。但社区始终坚信,通过合作和创新,它们可以克服这些挑战,并继续发展。
|
Loading…
Reference in New Issue
Block a user