跳过主内容

比较 Accelerate

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

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

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

Accelerate 有何独特之处?

Prisma Accelerate 因其独特的几大关键原因而受到许多人的选择和喜爱

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

Accelerate 全球缓存

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

AccelerateHyperdrivePlanetscale Boost
完全托管
全球分布式边缘基础设施
从代码控制缓存策略
查询级缓存策略
使用 API 密钥认证
兼容 Postgres
兼容 MySQL
兼容 MongoDB
自动缓存更新

为什么这些很重要?

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

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

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

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

Accelerate 连接池

Prisma Accelerate 包含一个全球托管的连接池器,让您能够轻松处理高峰负载。使用连接池非常重要,特别是对于无服务器基础设施,因为其本质上无法自行控制到数据库的连接量。Prisma Accelerate 提供一个完全托管、全球共置的选项,可自动扩缩以支持任何工作负载。

管理

AcceleratepgbouncerpgcatDigital Ocean (pgbouncer)Neon (pgbouncer)SupavisorHyperdrive
完全托管🟠
全球分布式
与 ORM 客户端集成
使用 API 密钥认证
冗余

为什么这些很重要?

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

性能

AcceleratepgbouncerpgcatDigital Ocean (pgbouncer)Neon (pgbouncer)SupavisorHyperdrive
自动扩缩
全球分布式
通过 HTTP 优化查询
隔离计算资源

为什么这些很重要?

  • Accelerate 将根据您的应用程序工作负载自动扩缩,这意味着您永远不会耗尽计算资源。此外,这还提供了重要的冗余,以防止任何单个计算实例发生故障——在极不可能发生实例宕机的情况下,Accelerate 将自动生成一个新的实例。
  • 应用程序服务器与 PgBouncer 或数据库之间的跨区域 TCP 握手既昂贵又耗时。如果连接仅在 PgBouncer 层重用,TCP 握手和连接设置仍会在每个请求上消耗不必要的时间,这会损害连接重用的效率。Prisma Accelerate 通过利用 HTTP 改进了这一点,HTTP 对于连接管理更高效。它减少了与 TCP 握手相关的开销,从而使您的应用程序与数据库之间的交互更快、响应更及时。
  • 通过隔离的计算资源,您永远不必担心“吵闹的邻居”问题。其他客户绝不会影响您自己的性能。

数据库支持

AcceleratepgbouncerpgcatDigital Ocean (pgbouncer)Neon (pgbouncer)SupavisorHyperdrive
PostgreSQL
MySQL
Planetscale
CockroachDB
MongoDB
© . All rights reserved.