Prisma Accelerate 的已知限制
以下是使用 Accelerate 时已知的限制描述。如果您遇到任何其他限制,请通过 Discord 与我们分享。
无法缓存原始查询
目前,无法缓存原始查询的响应。
不兼容 fluent API
客户端扩展(在 Accelerate 中使用)目前无法正确转发 fluent API 类型。我们希望尽快在客户端扩展中获得修复。
不兼容极其繁重或长时间运行的查询
Accelerate 旨在处理高性能、低延迟查询。它不适用于可能导致性能问题或资源争用的极其繁重或长时间运行的查询。虽然限制是可配置的,但我们建议优化您的查询,以确保它们符合推荐的准则。
对于无法优化或精简的查询,我们推荐以下两种解决方案之一
-
使用只读副本扩展:Prisma ORM 只读副本扩展 允许您设置两种不同的连接:
primary
(主连接)和replica
(副本连接)。您可以将 Accelerate 连接设置为primary
,然后将直接连接设置为replica
。任何资源密集型或长时间运行的查询都可以路由到replica
,而primary
(您的 Accelerate 连接)将处理普通查询。请注意,此解决方案要求您同时设置直接连接并需要完整的生成 Prisma 客户端(即不带--no-engine
)。 -
分离分析查询:我们首选的解决方案是将您的分析查询分离到单独的应用程序中。这个单独的应用程序可以使用直接连接,这样它就可以运行繁重的查询,而不会影响您的 Accelerate 支持的应用程序的性能或成本。
如果您有需要运行极其繁重或长时间运行的查询以及 Prisma Accelerate 的用例,请联系我们。
不兼容 MongoDB 连接字符串中的直接 IPv4 地址
Accelerate 不支持 MongoDB 连接字符串中的直接 IPv4 地址。当提供 IPv4 地址时,Accelerate 会将其转换为 IPv6 格式,以便通过其 NAT 网关进行路由。此转换可能导致连接字符串因端口值格式而失效。
变通方法:要解决此问题,请创建一个指向您的 IPv4 地址的 DNS 记录,并在连接字符串中使用该 DNS 记录,而不是直接 IP。
示例
- IPv4 连接字符串(不支持):
mongodb://user:password@192.168.1.100:27017/db_name
- DNS 记录连接字符串(支持):
mongodb://user:password@my-database.example.com:27017/db_name
有关 Accelerate 的 IPv6 优先设计的更多详细信息,请参阅我们的博客文章。