Redis/MinIO/MySQL/PostgreSQL面试题预测与解析
1. 工作流数据是存在哪里的?为什么选择 PostgreSQL?
考察点:数据库选型
参考答案:
Python 版工作流引擎的数据存在 PostgreSQL 里,包括流程定义、执行记录、节点状态、变量快照这些。
追问 1:为什么选 PostgreSQL:
第一,JSON 支持好:工作流 DSL 是 JSON 格式,PostgreSQL 有 jsonb 类型,可以直接存储和查询
-- 查询包含某个节点类型的工作流
SELECT * FROM workflow WHERE dsl::jsonb @> '{"nodeType": "LLM"}';
第二,支持向量扩展,后续做 RAG 可以用 pgvector。
-- 向量相似度搜索
SELECT * FROM documents ORDER BY embedding query_vector LIMIT 10;
表结构示例:
CREATE TABLE workflow (
id BIGSERIAL PRIMARY KEY,
name VARCHAR(100),
dsl JSONB, -- 工作流定义
status VARCHAR(20),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
参考答案版本 2:
主要有两个考虑。
第一是 JSON 支持更好。工作流的数据结构天然是嵌套的,节点定义、边的连接关系、节点参数配置,都是复杂的 JSON 结构。PostgreSQL 的 JSONB 类型是真正的二进制存储,可以建索引、可以做部分更新、查询性能也好。MySQ...
热门评论
12 条评论
回复