Postgresql: 概述架构图
This commit is contained in:
parent
fd79acd6a2
commit
a0a35b868d
@ -36,6 +36,116 @@ PostgreSQL 的发展历程反映了其对技术创新和社区驱动的承诺:
|
||||
|
||||
与其他关系数据库相比,**PostgreSQL 一直强调其对开放性、扩展性和标准的遵循**。与 MySQL、Oracle 和 SQL Server 等数据库相比,它被视为一个功能丰富但需要一定学习投入的选择。
|
||||
|
||||
## 架构
|
||||
|
||||
```mermaid
|
||||
graph LR;
|
||||
A[PostgreSQL 数据库服务] --> B1[数据库集簇 A];
|
||||
A[PostgreSQL 数据库服务] --> B2[数据库集簇 B];
|
||||
B1 --> C1[单一实例];
|
||||
B2 --> C2[单一实例];
|
||||
C1 --> D1[数据库 A];
|
||||
C1 --> D2[数据库 B];
|
||||
C2 --> D3[数据库 C];
|
||||
D1 --> E1[数据表1];
|
||||
D1 --> E2[数据表2];
|
||||
D1 --> F1[视图];
|
||||
D1 --> F2[函数];
|
||||
D1 --> F3[触发器];
|
||||
E1 --> G1[列];
|
||||
E1 --> G2[索引];
|
||||
E1 --> G3[主键];
|
||||
E1 --> G4[外键];
|
||||
E1 --> G9[约束];
|
||||
E2 --> G5[列];
|
||||
E2 --> G6[索引];
|
||||
E2 --> G7[主键];
|
||||
E2 --> G8[外键];
|
||||
E2 --> G10[约束];
|
||||
A --> H1[事务和并发控制];
|
||||
A --> H2[备份和恢复];
|
||||
A --> H3[安全性和权限管理];
|
||||
|
||||
A --> I[进程管理器];
|
||||
A --> J[SQL 解析器];
|
||||
A --> K[查询优化器];
|
||||
A --> L[查询执行器];
|
||||
|
||||
I --> M[后台进程];
|
||||
I --> N[自动清理进程];
|
||||
I --> O[后台工作进程];
|
||||
|
||||
L --> P[存储管理器];
|
||||
P --> Q[缓冲区管理];
|
||||
P --> R[磁盘空间管理];
|
||||
P --> S[事务管理];
|
||||
P --> X[日志管理];
|
||||
|
||||
Q --> T[共享缓冲区];
|
||||
Q --> U[WAL 预写日志];
|
||||
|
||||
S --> V[事务日志];
|
||||
S --> W[多版本并发控制 MVCC];
|
||||
|
||||
H1 --> Y[锁管理];
|
||||
H2 --> Z1[物理备份];
|
||||
H2 --> Z2[逻辑备份];
|
||||
H3 --> Z3[角色和权限管理];
|
||||
H3 --> Z4[加密和认证];
|
||||
|
||||
K --> Z5[统计信息];
|
||||
|
||||
style A fill:#f9d,stroke:#333,stroke-width:2px;
|
||||
style B1 fill:#fc9,stroke:#333,stroke-width:2px;
|
||||
style B2 fill:#fc9,stroke:#333,stroke-width:2px;
|
||||
style C1 fill:#9cf,stroke:#333,stroke-width:2px;
|
||||
style C2 fill:#9cf,stroke:#333,stroke-width:2px;
|
||||
style D1 fill:#9fc,stroke:#333,stroke-width:2px;
|
||||
style D2 fill:#9fc,stroke:#333,stroke-width:2px;
|
||||
style D3 fill:#9fc,stroke:#333,stroke-width:2px;
|
||||
style E1 fill:#c9f,stroke:#333,stroke-width:2px;
|
||||
style E2 fill:#c9f,stroke:#333,stroke-width:2px;
|
||||
style F1 fill:#ccf,stroke:#333,stroke-width:2px;
|
||||
style F2 fill:#ccf,stroke:#333,stroke-width:2px;
|
||||
style F3 fill:#ccf,stroke:#333,stroke-width:2px;
|
||||
style G1 fill:#fcc,stroke:#333,stroke-width:2px;
|
||||
style G2 fill:#fcc,stroke:#333,stroke-width:2px;
|
||||
style G3 fill:#fcc,stroke:#333,stroke-width:2px;
|
||||
style G4 fill:#fcc,stroke:#333,stroke-width:2px;
|
||||
style G5 fill:#fcc,stroke:#333,stroke-width:2px;
|
||||
style G6 fill:#fcc,stroke:#333,stroke-width:2px;
|
||||
style G7 fill:#fcc,stroke:#333,stroke-width:2px;
|
||||
style G8 fill:#fcc,stroke:#333,stroke-width:2px;
|
||||
style G9 fill:#fcc,stroke:#333,stroke-width:2px;
|
||||
style G10 fill:#fcc,stroke:#333,stroke-width:2px;
|
||||
style H1 fill:#ccc,stroke:#333,stroke-width:2px;
|
||||
style H2 fill:#ccc,stroke:#333,stroke-width:2px;
|
||||
style H3 fill:#ccc,stroke:#333,stroke-width:2px;
|
||||
style I fill:#9cf,stroke:#333,stroke-width:2px;
|
||||
style J fill:#9cf,stroke:#333,stroke-width:2px;
|
||||
style K fill:#9cf,stroke:#333,stroke-width:2px;
|
||||
style L fill:#9cf,stroke:#333,stroke-width:2px;
|
||||
style M fill:#cfc,stroke:#333,stroke-width:2px;
|
||||
style N fill:#cfc,stroke:#333,stroke-width:2px;
|
||||
style O fill:#cfc,stroke:#333,stroke-width:2px;
|
||||
style P fill:#ccf,stroke:#333,stroke-width:2px;
|
||||
style Q fill:#ccf,stroke:#333,stroke-width:2px;
|
||||
style R fill:#ccf,stroke:#333,stroke-width:2px;
|
||||
style S fill:#ccf,stroke:#333,stroke-width:2px;
|
||||
style T fill:#fcc,stroke:#333,stroke-width:2px;
|
||||
style U fill:#fcc,stroke:#333,stroke-width:2px;
|
||||
style V fill:#fcc,stroke:#333,stroke-width:2px;
|
||||
style W fill:#fcc,stroke:#333,stroke-width:2px;
|
||||
style X fill:#ccf,stroke:#333,stroke-width:2px;
|
||||
style Y fill:#ccc,stroke:#333,stroke-width:2px;
|
||||
style Z1 fill:#ccc,stroke:#333,stroke-width:2px;
|
||||
style Z2 fill:#ccc,stroke:#333,stroke-width:2px;
|
||||
style Z3 fill:#ccc,stroke:#333,stroke-width:2px;
|
||||
style Z4 fill:#ccc,stroke:#333,stroke-width:2px;
|
||||
style Z5 fill:#9cf,stroke:#333,stroke-width:2px;
|
||||
|
||||
```
|
||||
|
||||
## 特点
|
||||
|
||||
作为世界上最先进的开源关系数据库,PostgreSQL 具有以下显著特点:
|
||||
@ -70,6 +180,14 @@ PostgreSQL 通常每年发布一次主要版本,并根据需要发布小的补
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
style A fill:#f9d,stroke:#333,stroke-width:2px;
|
||||
style B fill:#9cf,stroke:#333,stroke-width:2px;
|
||||
style C fill:#9cf,stroke:#333,stroke-width:2px;
|
||||
style D fill:#ccf,stroke:#333,stroke-width:2px;
|
||||
style E fill:#ccf,stroke:#333,stroke-width:2px;
|
||||
style F fill:#ccf,stroke:#333,stroke-width:2px;
|
||||
style G fill:#ccf,stroke:#333,stroke-width:2px;
|
||||
|
||||
A[PostgreSQL 发布规则]
|
||||
B[小版本发布]
|
||||
C[主要版本发布]
|
||||
@ -87,10 +205,11 @@ graph LR
|
||||
C --> H
|
||||
|
||||
D[每个季度至少发布一次小版本]
|
||||
F[目标日期:每年的 2 月、5 月、8 月和 11 月的第二个星期四]
|
||||
F[目标日期: 每年的 2 月, 5 月, 8 月和 11 月的第二个星期四]
|
||||
E[每年一次发布一次主要版本]
|
||||
G[计划在 2023 年第三季度发布 16 版本]
|
||||
H[主要版本提供 5 年技术支持]
|
||||
|
||||
```
|
||||
|
||||
## 文化
|
||||
|
@ -1,8 +1,8 @@
|
||||
{
|
||||
"label": "基础理论",
|
||||
"label": "基础",
|
||||
"position": 1,
|
||||
"link": {
|
||||
"type": "generated-index",
|
||||
"title": "基础理论"
|
||||
"title": "基础"
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user