01 · DATA MODELINGP010 MIN
Prisma / Drizzle ORM
理解 ORM 在类型、查询与迁移之间承担什么,以及它不能替你做什么。
MENTAL MODELOBJECT RELATIONAL MAPPING
01TypeScript 模型
→02ORM 查询
→03SQL
→04PostgreSQL
先把概念与边界说清楚
定义告诉你它是什么,边界告诉你它不负责什么;企业系统最常见的误解通常发生在两者混用时。
ORM
把表、关系和查询映射为代码中的模型与 API,减少机械 SQL 并提供类型提示。
Prisma
以声明式 schema、生成客户端和迁移工作流为核心,开发体验完整。
Drizzle
更贴近 TypeScript 与 SQL 的轻量映射层,查询形态更透明。
同一订单查询为什么在本地快、线上慢
ORM 一行代码加载订单及所有关联项,上线后产生数百条查询。
- 01
打开查询日志确认 N+1。
- 02
改为显式选择字段和批量加载关联。
- 03
用 EXPLAIN 验证索引与行数估计。
保留类型安全,同时把请求查询数从 201 次降到 3 次。
马上动手
- 分别写出 ORM 适合和应直接使用 SQL 的场景。
- 为查询日志设置开发环境开关。
常见坑
- 不会 SQL 就直接上 ORM
- 默认加载整棵关系树
- 混淆 schema push 与正式 migration
05 · KNOWLEDGE CHECKPrisma 和 Drizzle 应该怎么选?查看答案⌄
答案
按团队 SQL 熟悉度、迁移方式、查询复杂度和运行环境选;两者都必须建立在正确关系模型与可观察 SQL 之上。