跳至主要内容

比较 Accelerate

Prisma Accelerate 支持为全球受众提供服务的產品,拥有跨越多个地区的全球缓存系统和连接池,无论用户(或您的数据库)位于世界何处,都能提供一致的低延迟数据访问。

托管连接池旨在支持无服务器基础设施,能够轻松处理大量连接并适应流量峰值。

探索 Prisma Accelerate 如何与市场上的其他全球缓存和连接池解决方案进行比较,并发现它的独特之处。

是什么让 Accelerate 独一无二?

Prisma Accelerate 因其众多关键原因而受到众多人的选择和喜爱,这些原因使 Accelerate 独一无二

  • 查询级策略:Accelerate 是唯一提供查询级缓存策略的解决方案,允许您专门控制每个查询的缓存策略。常见的做法是,某些值需要长时间缓存,其他值需要短期缓存,而有些值则根本不需要缓存。使用 Accelerate,您可以做到这一点,甚至可以为每个查询设置不同的缓存策略。
  • 默认情况下是全球性的:Accelerate 默认情况下是全球分布的。您无需担心用户相对于数据库位置的位置。
  • 完全托管:您无需管理服务器或担心正常运行时间。Accelerate 对您来说是完全托管的。
  • 自动缩放:Accelerate 会自动调整资源以匹配工作负载需求,在流量峰值期间提供快速而一致的性能。

Accelerate 全球缓存

Prisma Accelerate 提供了一个强大的全球缓存,因此您可以将数据提供给边缘的用户——最接近用户位置的点——无论您的数据库托管在哪里。这不仅加快了用户的体验,而且还通过避免往返减少了数据库上的读取负载。

加速HyperdrivePlanetscale Boost
完全托管
全球分布式边缘基础设施
从代码中控制缓存策略
查询级缓存策略
使用 API 密钥进行身份验证
兼容 Postgres
兼容 MySQL
兼容 MongoDB
自动缓存更新

为什么这些很重要?

  • 由于 Accelerate 扩展了 Prisma 客户端,您可以使用仅需一行额外代码即可直接从代码库中控制缓存策略。集成是无缝的。以下是如何使用 陈旧而重新验证缓存策略 的示例

    await prisma.user.findMany({
    cacheStrategy: {
    swr: 60,
    },
    });
  • 查询级缓存策略对于严肃的应用程序至关重要,因此您可以控制哪些查询被缓存以及策略的特征。您可能希望应用程序中的某些数据缓存几天,其他数据缓存几分钟,而其他数据则根本不缓存。这只有使用 Prisma Accelerate 才可能实现。

  • 使用 API 密钥进行身份验证可以作为一种有用的安全措施,使您能够将数据库凭据与应用程序密钥分离。您可以根据需要随时轻松地轮换 API 密钥,而无需对数据库中的任何凭据进行更改

  • 自动缓存更新意味着缓存会在数据库发生更改时自动更新。使用 Accelerate,您可以控制缓存的失效方式,使用 各种缓存策略

Accelerate 连接池

Prisma Accelerate 包含一个全球托管的连接池,它使您能够毫无问题地处理峰值负载。使用连接池对于无服务器基础设施尤其重要,无服务器基础设施本质上无法自行控制对数据库的连接量。Prisma Accelerate 提供了一个完全托管的、全球协同定位的选项,它会自动扩展以支持任何工作负载。

管理

加速pgbouncerpgcatDigital Ocean (pgbouncer)Neon (pgbouncer)SupavisorHyperdrive
完全托管🟠
全球分布式
与 ORM 客户端集成
使用 API 密钥进行身份验证
冗余

为什么这些很重要?

  • 如果您决定自己管理连接池(例如,使用 pgbouncer 或 pgcat),那么您还将负责管理其正常运行时间。如果服务器崩溃,您的应用程序可能会停止运行,直到您恢复它为止。Accelerate 作为一种完全托管的解决方案,将在任何基础设施问题(这种情况不太可能发生)时为您透明地恢复。
  • Digital Ocean 上的托管 pgbouncer 选项是半托管的,您需要在您的 Digital Ocean 帐户中进行设置,并确保其始终正常运行。
  • 使用 API 密钥进行身份验证可以作为一种有用的安全措施,使您能够将数据库凭据与应用程序密钥分离。您可以根据需要随时轻松地轮换 API 密钥,而无需对数据库中的任何凭据进行更改
  • 冗余在您不太可能发生的连接池服务出现故障的情况下非常有用。使用 Accelerate,它会自动无缝地移交给另一台服务器并恢复,而不会出现任何中断。

性能

加速pgbouncerpgcatDigital Ocean (pgbouncer)Neon (pgbouncer)SupavisorHyperdrive
自动缩放
全球分布式
通过 HTTP 优化的查询
隔离计算

为什么这些很重要?

  • Accelerate 会自动向上和向下扩展以适应您的应用程序工作负载,这意味着您永远不会耗尽计算资源。此外,这提供了重要的冗余来防止任何单个计算实例出现故障——在不太可能出现实例出现故障的情况下,Accelerate 会自动生成一个新实例。
  • 应用程序服务器与 PgBouncer 或数据库之间的跨区域 TCP 握手成本高昂且耗时。如果连接仅在 PgBouncer 层重用,那么 TCP 握手和连接设置仍然会在每个请求上消耗不必要的时间,这会削弱连接重用的效率。Prisma Accelerate 通过利用 HTTP 来改进这一点,HTTP 更适合连接管理。它减少了与 TCP 握手相关的开销,从而使您的应用程序与数据库之间的交互更快、响应更快。
  • 使用隔离的计算资源,永远不必担心“嘈杂的邻居”。其他客户永远不会影响您的性能。

数据库支持

加速pgbouncerpgcatDigital Ocean (pgbouncer)Neon (pgbouncer)SupavisorHyperdrive
PostgreSQL
MySQL
Planetscale
CockroachDB
MongoDB