supabase搭配nextjs的问题

2026-04-13 12:301阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

使用nextjs开发了个小工具,直接使用vercel部署了,但是发现serverless的部署方式搭配supabase,每隔几秒操作数据库,数据库连接都要重新初始化一次,导致查询时间超长,这个有解吗?

网友解答:
--【壹】--:

我看看这个


--【贰】--:

你的这个cname优选靠谱就没事 一般应该问题不大, 你试那个了吗,开小黄云+Enable Cloudflare headers

cc:

cloudflare的 Enable Cloudflare headers


--【叁】--:

谢谢。我的不知道为什么不能显示城市了。类似这样的:

temp1339×419 21.2 KB

会不会跟我把自定义域名开了 cloudflare 云朵有关吗?


--【肆】--:

冷启动延迟高解决不了的话可以试试 zeabur
小工具访问量不大,每个月免费的5$应该够用了


--【伍】--:

serverless没必要保存链接状态呀 你访问vercel又不一定每次都是同一个容器,也是动态分配你的,即使你这个容器保存了链接状态,你使用的时候给你分到别的副本,还是要重新链接。

Transaction pooler就是解决这个问题的


--【陆】--:

这个nextjs做的全栈,我感觉像是它的服务端组件也被serverless后没法保存数据库连接的样子


--【柒】--:

谢谢,我试了 SKIP_LOCATION_HEADERS=1,好像也没作用。


--【捌】--:

现在用的是supabase的 Transaction pooler 连接方式么

Transaction pooler

Ideal for stateless applications like serverless functions where each interaction with Postgres is brief and isolated.


--【玖】--:

如果能排除网络问题的话,那大概率就是冷启动了


--【拾】--:

[quote=“cc, post:10, topic:1461562, username:wwzccccc”]
Transaction pooler
[/quote]这个每个套餐允许的数量好低,感觉纯自己用还行


--【拾壹】--:

顺便请问一下佬,我也把 umami 部署到了 vercel 上数据存在 supabase,发现登录 umami 网页后,访客的 Location 信息中的 city 变成类似 (null, China) 这样的了。之前用 https://umami.is/ 时,它能显示具体的城市的。佬有碰到同样问题吗? 谢谢。


--【拾贰】--:

不知道了 我这边虽然没开云朵
但也是自定义域名 cname到 vercel.cdn.yt-blog.top 一个加速解析的站点
虽然有些是null 但也有很多有city的
另外也开了上面方案1的cloudflare的 Enable Cloudflare headers 再观察观察了
image2106×1490 224 KB


--【拾叁】--:

发现把 cloudflare 黄色云朵关掉就有城市信息了。不过,这样 ping 会显示 xxx…xxx.vercel-dns-017.com 的地址,会不够安全吗,或者可能被国内墙掉吗?


--【拾肆】--:

是的 免费的数据基本只能自用。
Transaction pooler好像同时允许几十个真链接并行,其他的都排队。

然后severless每次操作数据库就是就去池里拿一个链接用,个人上尽量避免一个api多次操作数据库应该会好点。

另外就像上面说的,不用serverless的服务(serverless保证不了每次用的都是同一个源服务),自己起一个单体服务,自己维护一个本地连接池


--【拾伍】--:

这个我倒是也有一部分数据没有city 刚查了一下umami的issue 也许你可以试试这个Enable Cloudflare headers


--【拾陆】--:

好像没有 我这边正常的
image2916×1536 368 KB


--【拾柒】--:

试了多种pool方式都不行,感觉和nextjs serverless有关


--【拾捌】--:

谢谢。我也明天再看看,先不管它了。
到时我也去掉云朵看看。


--【拾玖】--:

没遇到,vercel部署umami + pooler.supabase( Transaction pooler)

问题描述:

使用nextjs开发了个小工具,直接使用vercel部署了,但是发现serverless的部署方式搭配supabase,每隔几秒操作数据库,数据库连接都要重新初始化一次,导致查询时间超长,这个有解吗?

网友解答:
--【壹】--:

我看看这个


--【贰】--:

你的这个cname优选靠谱就没事 一般应该问题不大, 你试那个了吗,开小黄云+Enable Cloudflare headers

cc:

cloudflare的 Enable Cloudflare headers


--【叁】--:

谢谢。我的不知道为什么不能显示城市了。类似这样的:

temp1339×419 21.2 KB

会不会跟我把自定义域名开了 cloudflare 云朵有关吗?


--【肆】--:

冷启动延迟高解决不了的话可以试试 zeabur
小工具访问量不大,每个月免费的5$应该够用了


--【伍】--:

serverless没必要保存链接状态呀 你访问vercel又不一定每次都是同一个容器,也是动态分配你的,即使你这个容器保存了链接状态,你使用的时候给你分到别的副本,还是要重新链接。

Transaction pooler就是解决这个问题的


--【陆】--:

这个nextjs做的全栈,我感觉像是它的服务端组件也被serverless后没法保存数据库连接的样子


--【柒】--:

谢谢,我试了 SKIP_LOCATION_HEADERS=1,好像也没作用。


--【捌】--:

现在用的是supabase的 Transaction pooler 连接方式么

Transaction pooler

Ideal for stateless applications like serverless functions where each interaction with Postgres is brief and isolated.


--【玖】--:

如果能排除网络问题的话,那大概率就是冷启动了


--【拾】--:

[quote=“cc, post:10, topic:1461562, username:wwzccccc”]
Transaction pooler
[/quote]这个每个套餐允许的数量好低,感觉纯自己用还行


--【拾壹】--:

顺便请问一下佬,我也把 umami 部署到了 vercel 上数据存在 supabase,发现登录 umami 网页后,访客的 Location 信息中的 city 变成类似 (null, China) 这样的了。之前用 https://umami.is/ 时,它能显示具体的城市的。佬有碰到同样问题吗? 谢谢。


--【拾贰】--:

不知道了 我这边虽然没开云朵
但也是自定义域名 cname到 vercel.cdn.yt-blog.top 一个加速解析的站点
虽然有些是null 但也有很多有city的
另外也开了上面方案1的cloudflare的 Enable Cloudflare headers 再观察观察了
image2106×1490 224 KB


--【拾叁】--:

发现把 cloudflare 黄色云朵关掉就有城市信息了。不过,这样 ping 会显示 xxx…xxx.vercel-dns-017.com 的地址,会不够安全吗,或者可能被国内墙掉吗?


--【拾肆】--:

是的 免费的数据基本只能自用。
Transaction pooler好像同时允许几十个真链接并行,其他的都排队。

然后severless每次操作数据库就是就去池里拿一个链接用,个人上尽量避免一个api多次操作数据库应该会好点。

另外就像上面说的,不用serverless的服务(serverless保证不了每次用的都是同一个源服务),自己起一个单体服务,自己维护一个本地连接池


--【拾伍】--:

这个我倒是也有一部分数据没有city 刚查了一下umami的issue 也许你可以试试这个Enable Cloudflare headers


--【拾陆】--:

好像没有 我这边正常的
image2916×1536 368 KB


--【拾柒】--:

试了多种pool方式都不行,感觉和nextjs serverless有关


--【拾捌】--:

谢谢。我也明天再看看,先不管它了。
到时我也去掉云朵看看。


--【拾玖】--:

没遇到,vercel部署umami + pooler.supabase( Transaction pooler)