数据库篇
面向全栈 Node 工程师的数据库面试指南,加入向量检索、云原生、AI 辅助调优等 2025 年热点。
1. 关系型 vs 文档型:如何选型?
- 关系型(MySQL、PostgreSQL、TiDB):事务(ACID)、复杂查询、强一致。边缘:PlanetScale、Neon 主打无感扩展。
- 文档型(MongoDB、Firestore、DynamoDB):Schema 灵活、写入吞吐高;需通过 TTL、分片策略保证性能。
- 面试答题建议:结合业务举例,例如“用户画像主库用 Postgres,埋点日志放 ClickHouse,生成的 AI 结果写回 Mongo 供实时读取”。
2. PostgreSQL 正在取代 MySQL?
- Node 生态(Prisma、Drizzle、Kysely)都首先支持 Postgres 特性,如 JSONB、
LISTEN/NOTIFY
、窗口函数。 - 2024 年 pgvector 成为事实标准,可直接在 Postgres 里做向量检索,避免维护额外的向量库。
- PlanetScale(MySQL)仍适合强事务 + 可观测,但面试会问“你怎样补齐全文检索?”,可回答“结合 Typesense/Elastic 或 MySQL 8.0 的
INVISIBLE INDEX
”。
3. 向量数据库与 AI 应用(硬核加分)
类型 | 产品 | 亮点 | Node 实践 |
---|---|---|---|
托管云 | Pinecone, Zilliz, Upstash Vector | 多区域副本、托管扩缩容 | @pinecone-database/pinecone 、zilliz-cloud SDK,结合 LangChain.js |
自建 | Milvus, Qdrant, Weaviate | 自主可控、离线批量导入 | 通过 Docker Compose + Node CLI 批量插入向量 |
混合 | Supabase Vector | Postgres 扩展,SQL + 向量一体 | 直接 match_documents SQL,适合 BFF 查询 |
示例 SQL:
SELECT id, metadata, content
FROM documents
WHERE project_id = $1
ORDER BY embedding <=> $2
LIMIT 8;
sql
4. 缓存与消息队列的组合拳
- Redis 7 + RedisJSON/RedisSearch 用于频繁查询和实时看板;Upstash/Aiven 提供 Serverless 方案。
- 面试延伸:如何用 Redis Streams 与 Node Worker 做任务调度?可回答“使用
ioredis
监听xreadgroup
,处理 AI 生成任务,并通过 Dead Letter Stream 兜底”。 - MQ 选择:Kafka(高吞吐)、Pulsar(多租户)、RabbitMQ(可靠投递)。强调在 Node 中使用
kafkajs
、rmq
等库实现“AI 批处理 + 审核”的异步链路。
5. ORM/Query Builder 选型
- Prisma:类型推导一流,支持
Prisma Accelerate
、Accelerate+Data Proxy
;劣势是运行时略重。 - Drizzle ORM:零依赖、原生 SQL、适合 Cloudflare Workers/Edge。
- Knex/Kysely:灵活,可用于多数据库兼容。准备好回答“如何在多租户 SaaS 中设计 schema(Row-Level Security/Schema per tenant)”。
6. 数据库调优与运维常考点
- 连接池:Node 中推荐
pg
/mysql2
的池化,Serverless 则使用prisma accelerate
、neon serverless driver
orplanetscale serverless driver
。 - 索引:涵盖传统 B-Tree、Partial Index、Covering Index,以及向量库里的 IVF、HNSW。可用 AI 帮忙生成初始索引计划,但要通过
EXPLAIN ANALYZE
验证。 - 备份恢复:描述 PITR(Point-in-time Recovery)、逻辑备份、物理备份的差异,并结合云厂商(阿里云 RDS、腾讯云 CynosDB)策略。
7. 数据同步与 CDC
- Debezium + Kafka + Node 消费者:捕获 MySQL/Postgres 变更,触发缓存刷新或 AI 自动写稿。
- TiCDC / Flink CDC:对接下游实时分析(ClickHouse、StarRocks)。
- Node 侧可使用
@eventrix/cdc
、pg-logical
监听变更,示例:AI 自动校对用户提交内容后将结果写回。
8. 安全与合规(国内外都重视)
- 敏感数据脱敏:字段加密(KMS)、Token 化、AI 模型 prompt 削弱敏感字段。
- 零信任访问:结合 Cloudflare Tunnel、Tailscale,或数据库专线访问(阿里云 DMS 工具)。
- 数据库在 AI 项目中的合规:强调敏感 prompt 不落盘、使用对象存储(OSS、S3)承载向量原始文档,并配置生命周期策略。
9. 高频追问速记
- “MongoDB 和 MySQL 该怎么选?” 回答从数据结构、事务、成本、AI 上下游接口支持四个维度展开。
- “如何保障向量库的准确率?” 提及数据清洗、维度选择(一般 512/768)、归一化、定期重建索引。
- “Node 服务如何保持数据库连接稳定?” 覆盖连接池、健康检查、
SIGTERM
优雅关闭、Serverless 中的连接复用。
推荐资料:PostgreSQL 17 Release Notes、pgvector 0.6 基准测试、Supabase AI Changelog、阿里云《向量数据库选型指南》。
↑