JIT 映射器

JIT 映射器默认已禁用。使用 jit 选项启用它们:

import { drizzle } from 'drizzle-orm/...';

const db = drizzle({ client, jit: true });

在初始化时,Drizzle 会运行一个兼容性检查,测试当前运行时中 Function 构造函数是否可用。如果不可用(例如某些边缘运行时或受 CSP 限制的环境),它会回退到常规映射器,并在控制台输出警告。

jit 选项可在每个驱动的配置中使用

什么是 JIT 映射器?

JIT(即时)映射器是动态生成的 JavaScript 函数,用于将数据库行转换为 JS 对象。与其在运行时为每一行都解释列元数据,JIT 映射器不如一次编译出一个专用函数,并将其复用于结果集中所有行。

为什么需要它们?

普通的 Drizzle ORM 映射器会针对每一行数据遍历列元数据:

对于每一行:
  对于每一列:
    → 查找解码器
    → 检查是否存在 codec
    → 检查值是否为 null
    → 如有需要则应用 codec
    → 如有需要则应用解码器
    → 访问嵌套路径
    → 赋值到结果对象

当行数达到成千上万时,这种解释式开销就会累积起来。JIT 映射器通过生成一个函数来消除这部分开销,在生成时就把所有元数据查找、空值检查以及嵌套对象构造都硬编码进函数体中