Skip to main content
[ PIER ]

PostgreSQL

世界上最先进的开源关系型数据库。

Database 支持集群 #sql#relational

PostgreSQL 是经过 30 多年实战检验、完全符合 ACID 的 SQL 数据库,原生支持 JSONB、全文搜索、地理空间索引以及庞大的扩展生态。Pier 部署官方 Docker 镜像,提供自动备份、时间点恢复以及一键副本。

使用 Pier 部署

  1. 1 打开 Pier 控制台,点击 Add service。
  2. 2 从模板列表中选择 PostgreSQL。
  3. 3 选择版本、设置服务名称,Pier 会自动配置容器、存储和端口。
  4. 4 如需 HTTPS,请绑定域名。Traefik 会自动签发 Let's Encrypt 证书。

什么是 PostgreSQL?

PostgreSQL(“Postgres”)是一个开源的对象关系型数据库,已持续开发 30 多年。 它是各行各业新应用后端的默认选择 — 从一人创业公司到 Apple、Instagram、 Reddit,以及欧洲银行业的大部分系统。

它与 MySQL 等”简易”数据库的区别在于类型系统、查询规划器和扩展模型的深度。 JSONB 让它表现得像文档数据库。PostGIS 把它变成地理空间服务器。pgvector 让它成为向量搜索引擎。TimescaleDB 添加时序能力。你很少”长大到超越”Postgres —— 你在它之上叠加扩展。

Pier 如何部署它

Pier 使用官方 postgres Docker 镜像,将 /var/lib/postgresql 挂载为 数据卷。默认版本为 latest(当前 PostgreSQL 18);也提供 18-alpine、 17-alpine 和 16-alpine。

单节点部署时,Pier 提供强密码、创建容器、在内部网络暴露 5432 端口, 并(可选)通过 Traefik 发布。集群部署时,Pier 切换到 bitnami/postgresql 镜像,开箱即用支持流复制 — 1 主 + N 只读副本,可配置 2 到 5 节点总数。

备份按计划运行(按数据库或集群级别),使用 pg_dump 自定义格式。备份 可上传到 Pier 的 S3 Storages 中配置的任何 S3 兼容存储。

何时不要使用 PostgreSQL

对于嵌入式单进程应用,SQLite 更简单更轻。对于无关联且亚毫秒延迟目标的 纯键值工作负载,Redis 或 Valkey 是更好的选择。对于无事务要求的 PB 级 OLAP,ClickHouse 在原始吞吐量上取胜。

对于几乎其他所有情况 — Postgres。

核心功能

完整 ACID 与 MVCC

真正的串行隔离、外键、触发器、存储过程(plpgsql、Python、JS、Rust)。多版本并发控制,读取无锁。

丰富的类型系统

原生 JSONB(带索引和运算符)、数组、范围、UUID、几何类型、自定义类型、枚举。JSONB 速度足够快,使 Postgres 经常替代文档数据库。

流复制与 WAL

同步或异步物理副本、跨版本迁移和 CDC 的逻辑复制、通过 WAL 归档实现时间点恢复。

任何规模都高性能

基于代价的查询规划器、并行扫描、十亿行表的 BRIN 索引、按范围/列表/哈希分区、部分索引和表达式索引。

扩展生态

PostGIS(地理空间)、TimescaleDB(时序)、pgvector(AI 嵌入)、pg_partman、pg_stat_statements、pg_repack、外部数据封装器 — Postgres 是一个可以"成长进入"的数据库。

Pier 支持集群

通过 bitnami/postgresql 镜像实现 1 主 + N 只读副本的流复制。Pier 处理健康检查和连接路由。

应用场景

SaaS 应用后端

新应用后端的默认选择。与 Prisma、Sequelize、SQLAlchemy、Hibernate、GORM、ActiveRecord、Diesel 等主流 ORM 兼容。

行级安全的多租户数据

原生行级安全策略在数据库层强制租户隔离 — 而非应用层 — 实现无懈可击的多租户。

地理空间工作负载(搭配 PostGIS)

地图、路线、地理围栏、车队跟踪 — PostGIS 添加 1000+ 空间函数、R 树索引、投影和拓扑。

AI / 向量搜索(搭配 pgvector)

通过 HNSW 或 IVFFlat 索引存储和查询 1536 维嵌入。如果 Postgres 已持有其他数据,可跳过专用向量数据库。

分析与 BI 数据源

直接连接 Metabase、Superset、Grafana、Tableau。物化视图和分区可轻松处理数亿行数据。

代码示例

创建带约束和索引的表 sql
CREATE TABLE users (
  id          BIGSERIAL PRIMARY KEY,
  email       TEXT UNIQUE NOT NULL,
  created_at  TIMESTAMPTZ NOT NULL DEFAULT now(),
  profile     JSONB NOT NULL DEFAULT '{}'::jsonb
);

CREATE INDEX users_created_idx ON users (created_at DESC);
CREATE INDEX users_profile_gin ON users USING gin (profile);
JSONB 运算符查询 sql
SELECT id, email
FROM users
WHERE profile @> '{"plan": "pro"}'
  AND (profile->>'signups')::int > 5
ORDER BY created_at DESC
LIMIT 50;
多租户行级安全 sql
ALTER TABLE invoices ENABLE ROW LEVEL SECURITY;

CREATE POLICY tenant_isolation
ON invoices
FOR ALL
USING (tenant_id = current_setting('app.tenant_id')::uuid);

-- 每个请求:
SET app.tenant_id = '550e8400-e29b-41d4-a716-446655440000';
按月范围分区 sql
CREATE TABLE events (
  id BIGSERIAL,
  occurred_at TIMESTAMPTZ NOT NULL,
  payload JSONB
) PARTITION BY RANGE (occurred_at);

CREATE TABLE events_2026_05 PARTITION OF events
FOR VALUES FROM ('2026-05-01') TO ('2026-06-01');

对比

vs MySQL / MariaDB MySQL 更简单且基础速度仍然很快,但 Postgres 在 JSON、全文搜索、地理空间、部分索引、CTE 和 SQL 标准合规方面更胜一筹。任何非平凡场景都选 Postgres。
vs MongoDB Postgres 的 JSONB 与 Mongo 的灵活性相当,同时保留连接、事务和 SQL。大多数因"模式灵活"选 Mongo 的团队最终都迁移回来了。
vs SQLite SQLite 在嵌入式和单写入器应用中无可匹敌。Postgres 接管你需要并发写入、网络访问或复制的场景。
vs 托管 Postgres(RDS、Cloud SQL、Supabase) 在 Pier 上自托管为你提供相同的 Postgres,成本仅为零头 — 中小工作负载通常节省 10–30×。失去 SaaS UI,但获得控制权和可移植性。

常见问题

Pier 默认部署哪个 PostgreSQL 版本?
默认是 latest(撰写时为 PostgreSQL 18)。版本选择器也包含 18-alpine、17-alpine 和 16-alpine。在生产环境固定特定主版本,避免未来镜像更新触发意外的主版本升级。
备份是自动的吗?
Pier 提供定时的按数据库和集群级备份(pg_dump 自定义格式),可选 S3 目标。通过 WAL 归档实现时间点恢复在路线图中。
可以运行副本吗?
可以 — PostgreSQL 模板支持 2 到 5 节点集群(1 主 + N 只读副本),使用 bitnami/postgresql 的流复制。
如何添加 PostGIS 或 pgvector 等扩展?
PostGIS 使用专用模板(PostgreSQL + 扩展捆绑)。pgvector 和其他扩展,进入容器手动 CREATE EXTENSION,或通过自定义镜像安装。
支持行级安全吗?
是 — 通过 CREATE POLICY 完整支持 RLS。常用于在多租户 SaaS 中强制租户隔离,无需应用侧过滤。
暴露哪些端口?
默认 5432/tcp。Pier 通过内部网络路由流量;仅在必要时通过 Traefik 对外暴露。
我现有的 ORM(Prisma、Sequelize、Diesel)能连接吗?
是的,所有主流 ORM 都一流支持 Postgres。通过 Pier 在服务页面显示的标准 `postgresql://user:pass@host:5432/db` URI 连接。

相关服务

在你的 VPS 上部署

PostgreSQL 是经过 30 多年实战检验、完全符合 ACID 的 SQL 数据库,原生支持 JSONB、全文搜索、地理空间索引以及庞大的扩展生态。Pier 部署官方 Docker 镜像,提供自动备份、时间点恢复以及一键副本。

部署此服务 →