SuperAPI AI 工具集

postgresql

数据与分析

查看项目

更新于 10-15 21:49

技能介绍

用途:PostgreSQL 是开源对象关系型数据库系统,以可靠性、功能丰富(JSONB、GIS、全文检索)和性能著称。本技能面向需要高级关系型数据库支持的场景,包括半结构化文档存储、AI 向量嵌入检索和地理空间应用。

主要能力:JSONB 以二进制分解形式存储 JSON,支持完整索引;可用 GIN 索引对整段 JSONB 结构建索引,并用 @> 做包含查询。pgvector 扩展可在关系表旁存储高维向量嵌入并执行余弦/L2 语义相似度搜索,示例中向量维度为 1536,并可用 HNSW 索引做近似最近邻搜索。PostGIS 用于分析空间几何、地理边界和 GPS 坐标。MVCC 机制在更新/删除时保留旧行版本,autovacuum 守护进程回收死元组。

使用方式:建表时可用 JSONB 列并创建 GIN 索引,例如 CREATE INDEX idx_users_profile ON users USING GIN (profile); 查询用 data->>'user' = 'alice' 或 profile @> '{...}'。向量检索需先 CREATE EXTENSION IF NOT EXISTS vector; 再建 vector(1536) 列与 hnsw 索引,用 <=> 排序取相似结果。排查膨胀可查询 pg_stat_user_tables 的 n_live_tup、n_dead_tup、last_autovacuum。

最佳实践:使用 PgBouncer 事务池模式防止连接耗尽;日期列用 TIMESTAMPTZ;创建部分索引和表达式索引;部署新查询前运行 EXPLAIN (ANALYZE, BUFFERS)。新表避免用 SERIAL,改用 GENERATED ALWAYS AS IDENTITY 或 UUIDv7;不要禁用 autovacuum;避免长事务。

常见问题:连接槽耗尽需部署 PgBouncer 并调整 max_connections;大表出现 Seq Scan 可运行 ANALYZE 或建匹配索引;死锁需统一加锁顺序并保持事务短小。

限制:资料未提供具体版本要求、性能基准、收费或平台信息。