Cover

PostgreSQL 进阶:从 JSONB 到 GIS

2026-01-12 12 分钟 3800

PostgreSQL 进阶:从 JSONB 到 GIS

1. 为什么选择 PostgreSQL?

PostgreSQL 不仅仅是一个关系型数据库,它是一个对象-关系型数据库系统(ORDBMS)。它的扩展性极强,被誉为"开源界的 Oracle"。

2. JSONB:NoSQL 的强力替代

PG 提供了两种 JSON 数据类型:jsonjsonb

  • json: 文本存储,输入快,查询慢(需要解析)。
  • jsonb: 二进制存储,输入稍慢,查询极快(支持索引)。

GIN 索引加速 JSONB 查询:

SQL
CREATE INDEX idx_users_data ON users USING GIN (data);

有了 GIN 索引,在百万级数据中查询 JSON 属性也能达到毫秒级响应。这使得 PG 可以完全替代 MongoDB 在许多场景下的作用,同时还能享受 ACID 事务和 JOIN 操作的优势。

3. PostGIS:地理信息系统的王者

PostGIS 是 PostgreSQL 的一个扩展,它让 PG 成为了事实上的开源 GIS 数据库标准。

常见应用场景:

  • 查找附近的点: 计算用户周围 5km 内的商家。
  • 多边形判断: 判断一个坐标点是否在某个行政区划内。
SQL
-- 查找距离原点 1000 米以内的所有点 SELECT name FROM places WHERE ST_DWithin( geom, ST_MakePoint(0, 0)::geography, 1000 );

4. 强大的扩展生态

除了 PostGIS,PG 还有众多强大的插件:

  • pgvector: 向量数据库扩展,用于 AI 嵌入向量搜索(RAG 架构必备)。
  • TimescaleDB: 时序数据库扩展,专为物联网和监控设计。
  • pg_cron: 在数据库内部运行定时任务。

5. 总结

如果你正在开始一个新的项目,并且不确定未来会有什么样的需求变化,PostgreSQL 几乎总是最安全的选择。它既能做关系型存储,又能做文档存储,还能处理地理信息和向量数据,是真正的"全能型"数据库。

TINYANDNICE

Exploring the digital frontier. Code, design, and thoughts on the future of technology.

© 2026 TinyAndNice. All systems operational.

Command Palette

Search for a command to run...