用途:Drizzle ORM 是面向 TypeScript 的 SQL ORM,通过类 SQL 语法在编译期提供类型安全,官方称其零依赖、无明显运行时开销,适合边缘运行时和无服务器环境。
主要能力:用 pgTable 等函数在 pg-core、mysql-core、sqlite-core 中定义表,支持 serial、text、integer、boolean、timestamp、json、uuid 等列类型,以及 unique、primaryKey、外键、列枚举、$type 类型标注和 $inferSelect/$inferInsert 类型推断。通过 relations 定义一对多、多对多,并用 db.query 的 with 加载关联。查询支持 select/insert/update/delete、eq/ne/gt/like/inArray/isNull/and/or 等条件、innerJoin/leftJoin、count 聚合、orderBy、limit/offset、事务。Drizzle Kit 负责生成、查看、应用迁移及数据库自省与 Studio。
使用方式:npm install drizzle-orm,按数据库安装 pg、mysql2 或 better-sqlite3,迁移工具 npm install -D drizzle-kit。定义 schema 后经 drizzle(pool, { schema }) 创建 db 实例即可查询;迁移用 npx drizzle-kit generate、migrate、introspect、studio。
适用场景:TypeScript 项目中的类型安全 SQL 访问、边缘/无服务器、需要贴近 SQL 控制力的应用,以及从 Prisma 评估或迁移。
限制:资料列出的性能对比(体积、冷启动、查询速度、内存)与版本信息未提供来源与验证条件,仅供参考;JSON 列若不加类型标注会退化为 any/unknown,拼接原始 SQL 存在注入风险,多步修改需用事务,生产查询应分页并为外键/高频列建索引,大表避免无列选择的 select()。