自首次发布以来,Prisma Accelerate 已经处理了近 100 亿次查询!而且它还在不断改进:通过增加自动扩缩功能,Prisma Accelerate 能够更好地帮助应用程序进行扩缩,并消除对数据库连接瓶颈的担忧。
为什么连接池很重要
在数据库性能方面,连接池常常被忽视或长时间忽略。
刚开始时,没有它也能应付。即使是小型数据库服务器也能处理 1 到 2 个应用程序服务器建立 5-10 个连接。随着您业务的增长,更好的连接管理是一种快速且轻松的提升。
大多数人认为连接池器只在超大规模时才需要,但最好在此之前就实现它!
传统数据库连接的挑战
当您的应用程序与数据库交互时,通常会遵循以下步骤
- 打开到数据库的 TCP 连接
- 向数据库发送查询
- 关闭 TCP 连接
*每次数据库交互*都会重复这个过程。打开和关闭数据库连接出了名的慢且消耗资源,因为它需要身份验证、三次握手以及内存和 CPU 等资源的分配。
在现代无服务器和边缘计算环境中,这一挑战变得更加严峻。在这些场景中,每次单独的函数调用都会尝试建立新的数据库连接。
连接池如何帮助您的应用程序
连接池器不像每次请求都打开和关闭连接,而是维护一个开放的数据库连接池,以便在将来需要对数据库进行请求时重复使用。
数据库交互的流程如下所示
- 从连接池管理器请求一个连接
- 向数据库发送查询
- 将连接返回给连接池
使用连接池
- 减少了持续创建和关闭连接的开销
- 提高了数据库操作的响应时间
- 有助于管理流量高峰而不会导致中断。
- 随着您的数据和用户数量增长,有效扩缩。
在我们最近的文章中了解更多关于连接池的好处:使用连接池拯救黑色星期五
推出 Prisma Accelerate 的自动扩缩功能
自去年发布以来,Prisma Accelerate 已经处理了近 100 亿次查询,证明了其生产环境就绪性。展望下一个 1000 亿次查询,我们正在推出能够使 Prisma Accelerate 更加强大的功能。通过增加自动扩缩功能,Prisma Accelerate 将更适合扩缩任何应用程序!
新的自动扩缩工作原理
- 当您启用 Accelerate 时,会设置一个连接限制。
- Accelerate 持续监控正在使用的活动连接数量。
- 如果需要更多资源来处理应用程序的流量,Accelerate 将在您设置的连接限制内分配额外资源。
- 随着流量减少,任何额外资源都将被移除。
扩缩是通过水平方式实现的,即随着您的负载增加和流量增长,提供更多连接池实例。这不仅有助于应对尖峰的、不可预测的工作负载,也有助于不断发展的应用程序,这意味着我们可以大规模管理您的流量。
在 Prisma Accelerate 中设置连接限制
在 Prisma Accelerate 中,您可以在启用或更新现有已启用 Accelerate 环境的配置时,通过连接池部分中的连接池大小下拉菜单设置连接限制。
访问文档,了解更多关于配置 Accelerate 连接池大小的信息。
设置正确的连接限制为何重要
当您的应用程序负载很高时,设置正确的连接限制至关重要。原因如下
- 资源分配:您设置的限制有助于 Accelerate 高效分配资源。
- 性能指标:它是理解应用程序数据库交互模式的关键指标。
- 扩缩效率:适当的限制确保及时扩缩,防止在瓶颈影响性能之前发生。
设置连接限制的最佳实践
以下是一些帮助您为应用程序设置正确连接限制的最佳实践。
- 设置您的连接限制:分析您应用程序的需求并相应地设置连接限制。我们建议将可用连接的大约三分之一分配给 Accelerate,以便为需要与数据库交互的其他服务提供连接缓冲区。请注意,Accelerate 可能会在短时间内超出分配的连接,以有效管理 schema 更改或迁移到新的 Prisma 版本。
- 根据需要调整:随着您的应用程序增长,重新审视并调整您的连接限制。
通过理解和利用连接限制,您不仅仅是调整配置,而是在直接影响 Accelerate 如何优化应用程序的性能。连接池不仅适用于超大规模;它是一种可以在应用程序不同增长阶段都受益的技术。
如果您想知道缓存是否是提高应用程序性能、减少数据库往返的另一个步骤,那么您是对的,Accelerate 也支持这一点!您可以在我们最近的博客文章中了解更多关于数据库缓存的好处:速度与节省:使用 Prisma Accelerate 缓存数据库查询
立即试用 Accelerate,提升您的应用程序性能
如果您想亲身体验使用 Prisma Accelerate 带来的性能提升,请访问Accelerate 速度测试或使用我们的入门项目之一开始。
开始使用 Accelerate
不要错过下一篇文章!
订阅 Prisma 新闻简报