伟大的 ORM 转折:为何团队在 2025 年转向 Drizzle
Source: Dev.to
Prisma 方法
Prisma 使用用 Rust 编写的强大查询引擎。它稳健且安全,但它是一个 体积庞大 的二进制文件。在长期运行的服务器中,这种开销可以忽略不计,但在仅运行几毫秒后就会休眠的无服务器函数中,额外约 10 MB 的二进制文件会导致明显的冷启动延迟。
Drizzle 转向
Drizzle 是 TypeScript 原生 的——没有二进制文件,仅是围绕原始 SQL 的轻量、类型安全包装器。其打包体积以千字节计,而不是兆字节。
模式定义
你使用标准的 TypeScript 对象来定义表。无需代码生成步骤;类型会即时推断。
// Example schema definition (TypeScript)
export const users = pgTable('users', {
id: serial('id').primaryKey(),
name: varchar('name', { length: 255 }).notNull(),
email: varchar('email', { length: 255 }).unique().notNull(),
});
查询
只要懂 SQL,就懂 Drizzle。查询直接映射为 SQL 语句。
// Simple select query
const result = await db.select().from(users).where(eq(users.id, 1));
性能
因为 Drizzle 并未抽象掉 SQL,你可以编写复杂的 JOIN 和 CTE,而 Prisma 过去在这方面常常难以优化。这使得它非常适合每毫秒都至关重要的边缘环境。
在 Prisma 与 Drizzle 之间的选择
- 如果 你在传统 VPS(如 AWS EC2、DigitalOcean)上构建大型企业应用,并且看重 “开箱即用” 的生态系统(Prisma Studio、Pulse、高级迁移),则继续使用 Prisma。
- 如果 你部署到边缘平台(Vercel、Netlify、Cloudflare Workers、Bun),且冷启动时间直接影响转化率,则转向 Drizzle。
“开发者体验 vs. 用户体验”的争论终于上升到数据库层面。2025 年, “够用” 的性能已不再满足边缘部署的需求。Drizzle 不仅是一个潮流,更是对现代云计算技术需求的响应。
你选择的 ORM 不再仅仅关乎代码编写的速度——而是关乎用户运行代码的速度。