PostgreSQL
PostgreSQL是一款开源的对象关系型数据库管理系统,以高度符合SQL标准、支持ACID事务和数据完整性著称。它具备丰富的数据类型支持、强大的扩展机制(如自定义函数、插件体系),并提供高并发处理能力,广泛应用于企业级应用、数据分析及Web服务等场景。
核心事实
时间轴 (近 90 天)
PostgreSQL的交互式shell叫psql,特殊命令以反斜杠开头(如\dt列出表);MySQL的shell叫mysql,使用show tables、describe这类类SQL命令。
官方 Compose 示例提醒 PostgreSQL 18 改了数据目录。
历史上 MySQL、PostgreSQL 等开源数据库的成熟,曾迫使商业数据库从按席位授权转向按用量或订阅定价。
在 LangGraph 多 Worker 场景中,开发者把线程 ID 哈希成一个 64 位整数作为咨询锁的锁键,Worker 在处理某个 thread 前尝试获取咨询锁,成功则独占该会话,失败则说明已有其他 Worker 在处理。
PostgreSQL 咨询锁分为会话级和事务级两种:会话级锁在连接断开时自动释放,事务级锁在事务结束时释放。
PostgreSQL 咨询锁的优点是无需额外建表、借助数据库连接生命周期天然实现故障释放;缺点是它绑定数据库连接,连接池复用或网络闪断可能导致锁意外释放,且无法直接表达“带超时的租约”语义,因此实践中常与租约表配合使用。
生产环境中非链部分通常涉及:认证与授权(Auth0、Clerk或自建JWT)、应用数据(PostgreSQL或MySQL)、向量存储(Pinecone、Qdrant、Weaviate或pgvector)、文件存储(S3兼容对象存储)、文档解析(Unstructured、LlamaParse或自定义管道)、用量追踪(自定义事件日志或分析工具)、后台执行(Celery、RabbitMQ或云任务队列)。
课程中的计时显示原生全文检索查询约 0.3 毫秒、BM25 查询约 9 毫秒,但作者明确表示这不代表谁更快,因为前者返回零行、后者返回 10 行。
BM25 需要全局统计信息(文档频率、平均文档长度),因此通常需要专门的索引结构支持,而 PostgreSQL 内置的 ts_rank 缺少全库文档频率统计。
pgTextSearch 是 PostgreSQL 许可证下的开源扩展,提供 BM25 排序;查询操作符为 <@>,返回 BM25 分数的负值,排序需用升序。
还有 40 条时间轴事件
全部知识事实 (20)
LangGraph的检查点存储默认支持内存、SQLite和PostgreSQL等多种后端
90%已验证pgvector扩展为PostgreSQL添加了向量存储和相似度搜索能力,使Supabase可以同时充当传统数据库和向量数据库
80%已验证Supabase是Firebase的开源替代品,基于PostgreSQL提供数据库、身份认证、实时订阅等后端即服务能力
80%已验证Dify的核心架构采用微服务设计,通过Docker Compose将API服务、Worker、Web前端、PostgreSQL、Redis和向量数据库等组件解耦部署
80%已验证切换到方案B后场景加载时间从3.3秒缩短到约0.5秒,快约6.8倍
75%已验证Lakebase 是 Databricks 生态中提出的一种新型数据库形态,其核心理念是将 Postgres 兼容的事务型数据库能力构建在数据湖仓架构之上
75%已验证pgvector 是 PostgreSQL 的开源扩展,为关系型数据库原生添加向量数据类型与相似度搜索能力,支持精确最近邻和近似最近邻(HNSW、IVFFlat 索引)两种检索模式
70%已验证RLS(Row Level Security,行级安全策略)是PostgreSQL原生特性,允许在数据库层面定义精细的访问控制规则
70%已验证Supabase基于PostgreSQL构建,RLS是PostgreSQL数据库的核心安全特性
70%已验证数据库存储套餐配置的代价包括:产品演进时易产生数据不一致、需测试的组合更多、频繁读取可能拖慢应用
65%已验证PostgreSQL可通过pgvector支持向量检索
65%已验证WAL(预写式日志)的原理是所有修改操作在写入实际数据文件之前必须先顺序追加到 WAL 日志文件中,用于实现事务持久性和崩溃恢复
65%已验证LangGraph的状态是一个TypedDict,检查点机制将状态快照持久化到存储后端(如SQLite、PostgreSQL),支持断点恢复、时间旅行调试和人机协作
65%已验证Langfuse包含Web界面、PostgreSQL、Redis、ClickHouse以及负责异步评估的Langfuse Worker等组件
65%已验证LangGraph 通过检查点机制将每个节点执行后的完整状态序列化并持久化到外部存储(如 PostgreSQL 或 Redis),可在中断点精确恢复执行
65%已验证PostgreSQL 每个后端进程约有 5-10MB 基础内存开销
65%已验证PostgreSQL 扩展在查询规划器层面与内核完全平等,优化器能够感知并利用扩展索引的统计信息生成执行计划
65%已验证Django的ORM支持多种数据库后端,包括PostgreSQL、MySQL和SQLite
65%已验证LangGraph的长期存储支持多种后端,包括PostgreSQL用于结构化数据、Pinecone和Chroma等向量数据库用于语义检索、Redis用于高速缓存
65%部分验证现代数据库如MySQL InnoDB和PostgreSQL内部都实现了缓冲池(Buffer Pool)机制,通过LRU等算法管理缓存替换策略
100%