Drizzle ORM 连接 TiDB Cloud Serverless 使用 $returningId() 出错求助

我们的数据库是 TiDB Cloud serverless,产品框架 Hono,使用 @drizzle-orm/tidb-serverless + @tidbcloud/serverless 连接数据库。产品部署在 Cloudflare Worker 上面。

之前一切正常,近期(不超过2周)突然遇到 worker memory exceed limits 错误,只有在生产环境上才会稳定复现。因为 Cloudflare Worker 只有 128MB 内存,本地内存比较富裕。经过一段时间的排查(二分切割法),最终基本确定是下面这段代码的问题:

    const uid = (
      await this.client
        .insert(schema.users)
        .values({
          externalId: externalId,
          firstName: firstName,
          lastName: lastName,
          email: email.toLowerCase(),
        })
        .$returningId()
    )[0];
    return uid.id;

$returningId() 去掉,然后单独写一个 query 就没问题了。

目前虽然问题已经解决,但我担心是不是没找对地方,所以发出来请教一下大家,看有没有人遇到过类似的问题,或者听说过类似的问题。