2024 年 9 月 5 日

为什么在 2024 年使用 Prisma 构建您的数据层?

Prisma 提供了一套强大的工具,用于构建可扩展、高性能且安全的数据层!以最受欢迎的 TypeScript ORM 为基础,并通过连接池、全局缓存、查询洞察等功能增强,您将完全有能力将您的应用程序扩展到数百万用户。

Why Use Prisma to Build Your Data Layer in 2024?

目录

引言

Prisma 提供了一套强大的工具,用于构建您项目的数据层。凭借多年构建数据库工具的经验以及从数千个开发团队获得的洞察,我们精心设计了我们的产品,以满足各种规模应用程序的需求——从个人爱好项目到初创企业再到企业级应用

  • 开源的 Prisma ORM 是 Node.js 和 TypeScript 生态系统中最受欢迎的 ORM,为您与数据库交互提供了坚实的基础。人类可读的 schema、自动生成的迁移以及直观的查询使得应用程序开发者效率更高,并能快速构建功能。类型安全的原始 SQL 额外提供了高级查询的最大灵活性,同时不牺牲开发者体验。
  • 严肃的应用程序需要数据库缓存层和高效的连接管理,以保持查询快速并减少数据库服务器负载。使用 Redis 等工具手动实现缓存或处理连接池可能既复杂又容易出错。Prisma Accelerate 通过将细粒度缓存控制(针对每个查询使用 TTL 和 SWR 参数)与高级连接池相结合来简化这一点,有效地管理可重用的数据库连接,从而提高性能和可扩展性。
  • 不确定如何让某个数据库查询更快?使用 Prisma Optimize,您可以深入了解 Prisma ORM 发送的所有查询,并轻松找到如何使它们更快的方法。这可以确保您的数据库查询和应用程序以最佳性能运行。Optimize 即将推出更多功能,让您更轻松地编写更优的查询。
  • 浏览和与数据库交互应该简单直观,而不是一件苦差事。自定义工具或原始 SQL 很容易让您忽视数据。Prisma Studio 提供了一个简单的表格界面,可以快速查看和理解您的数据,并具备完整的 CRUD 功能、过滤、排序和分页。它允许无缝导航关系数据和安全的就地编辑,确保数据完整性。

Accelerate、Optimize 和 Studio 与 Prisma ORM 无缝集成,为工程团队在构建应用程序时遇到的常见挑战提供了解决方案。这些工具将您的开发团队从管理 SQL、Redis、Kafka 和自定义数据管理界面的复杂性中解放出来,让他们能够专注于真正重要的事情:为您的用户创造价值。通过这些解决方案,您可以简化工作流程、提升性能并确保数据完整性——同时保持出色的开发者体验。

一个随应用程序一起扩展和发展的 ORM

Prisma ORM 开创了类型安全 ORM 的理念,并迅速成为 Node.js 和 TypeScript 生态系统中最受欢迎的 ORM!

它不仅是 npm 上下载量最大的 TypeScript ORM,还是 RedwoodJS(由 GitHub 联合创始人 Tom Preston-Werner 创建)等下一代 Web 框架的基础,也是 Wasp(YC 21)和 Amplication(最近获得了 660 万美元种子轮融资)等新兴开发平台的基础。

快速开始使用 Prisma ORM

Prisma ORM 的主要优点之一是易于上手!我们不断从社区听到反馈,感谢人类可读的 schema、简单的迁移和直观的查询 API,几乎没有学习曲线。

以下是 Prisma ORM 主要工作流程的快速概述

1. 人类可读的 schema

Prisma ORM 拥有自己的建模语言,该语言迅速在开发者中流行起来

VS Code 扩展提供了您能想象到的所有出色开发者体验:语法高亮、自动补全、跳转到定义等等!

2. 轻松迁移

这是使用上面 schema 并对数据库运行相应迁移的简单命令

Prisma ORM 的迁移系统经过精心打造,旨在消除许多开发者在其职业生涯中更改数据库 schema 时所经历的痛苦。

工作流程考虑到了从开发到生产的所有阶段,并且旨在无论您是独自在本地机器上工作还是在团队的 CI 环境中,都能提供可预测的迁移,这是快速安全开发的完美基础。

3. 直观查询

Prisma ORM 为构成应用程序大部分数据需求的 CRUD 查询提供了直观的 API。作为为用户构建功能的开发者,我们经常需要过滤和分页等功能,以及轻松处理关系和嵌套对象的方法。

Prisma ORM 强大的查询 API 通过直观且高性能的查询(同时返回完全类型化的结果)来满足所有这些需求

TypedSQL:在需要时提供灵活的类型安全查询

虽然我们看到这种直观的高级 API 满足了我们用户的大部分需求,但我们也了解到,在某些情况下,利用原始 SQL 提供的全部灵活性是有益的。

为了提供出色的开发者体验,我们最近推出了 TypedSQL——编写原始 SQL 并获得完全类型化结果的最佳方式!

只需将您的自定义 SQL 查询写入专用文件…

… 运行 prisma generate --sql 命令,并使用生成的查询函数获取完全类型化的结果

在您喜爱的环境中使用 Prisma ORM

Prisma ORM 构建时,默认的部署模型是将长期运行的服务器部署在 AWS EC2、DigitalOcean 和 Heroku 等平台上。

自那时以来,基础设施格局发生了很大变化,Prisma ORM 也随之发展。如果您在无服务器或边缘环境中部署应用程序,Prisma ORM 是您的完美伴侣,并且对在移动应用中使用 React Native 和 Expo 处理数据库的支持目前处于早期访问阶段。

一个成熟且不断发展的生态系统

我们为我们的 社区感到无比自豪,多年来他们为 Prisma 的发展做出了巨大贡献。谢谢你们!❤️

社区工具,让 Prisma ORM 工作流程更出色

除了 Prisma ORM 成为许多下一代框架和开发工具的默认数据库库之外,Prisma 社区还构建了大量多样化的工具,使得使用 Prisma ORM 的开发更加愉快。

从其他语言的 Prisma Client(例如 PythonGo),到基于 Prisma 的 DSL(例如 Zenstack),再到生成器(例如用于可视化 DB schema生成 Zod 类型),以及许多其他工具,如中间件、Client 扩展、CLI 等等!请查看我们的生态系统页面,了解我们展示的工具。

我们感谢这个积极且不断壮大的社区,他们持续为 Prisma 生态系统构建有价值的工具。

基于 Prisma ORM 构建的真实世界开源项目

最后,我们很高兴看到 Prisma ORM 在真实世界开源项目中的应用。从独立开发项目到获得融资的初创企业,这些示例项目是您了解基于 Prisma ORM 构建的生产级应用程序外观的绝佳参考!

如果您想了解更多,请查看我们在 YouTube 上发布的开源公司创始人访谈

超越 ORM

正如本文开头所述,Prisma 提供的价值不止于 ORM。我们看到,随着时间的推移,关键任务应用程序对附加功能和基础设施的需求不断增长,因此我们构建了能够满足这些需求的工具。

使用 Accelerate 实现强大而快速的查询

Prisma Accelerate 是一个托管的连接池和全局缓存层,有助于加速数据库查询。通过 Accelerate,您可以轻松配置连接池,并根据生存时间 (TTL) 和陈旧时重新验证 (SRW) 参数为您的应用程序选择合适的缓存策略。

Accelerate Speed Test

准备好加速您的数据库查询了吗?请查看速度测试,看看使用 Accelerate 可以获得哪些性能提升。

外部连接池对于无服务器应用至关重要

如果您正在构建一个连接到 PostgreSQL 或 MySQL 等传统数据库的无服务器应用程序,您可能知道在流量高峰时,您的数据库可能会耗尽可用的连接插槽。

这是因为每个无服务器函数都会打开一个到数据库的新连接。在流量激增时,同时产生数百或数千个函数,数据库将无法提供任何新的连接插槽,并且您的函数的请求将开始失败——给您带来糟糕的用户体验和沮丧的用户。

在数据库之上添加外部连接池将确保您的数据库在流量高峰期间不会崩溃。

在我们的最新文章中了解有关连接池优势的更多信息:使用连接池拯救黑色星期五

缓存使查询快速、减少数据库负载并节省成本

使用 Redis 等工具手动构建数据库缓存层既耗时又容易出错。管理 Redis 基础设施、在全球范围内进行复制、基于 TTL 和 SWR 实现缓存选项以及确保清晰的缓存失效逻辑是一项复杂的任务,足以让整个工程团队忙得不可开交。

Accelerate Dashboard

Accelerate 提供了全局数据库缓存的好处,而无需您自己管理任何缓存基础设施和实现缓存逻辑的开销。它与 Prisma ORM 无缝集成,并允许您在每个查询级别控制缓存行为,以确保所有数据库查询都以最佳速度执行。

要开始缓存数据库查询,只需将您的数据库与 Accelerate 连接,安装 Prisma Client 的 Accelerate 扩展,然后开始使用 ttlswr 选项针对单个查询配置缓存行为,例如

您可以在我们的最新博客文章中了解有关数据库缓存优势的更多信息:速度与节省:使用 Prisma Accelerate 缓存数据库查询

使用 Optimize 获取查询洞察和改进,实现最佳性能

在现代应用程序中,性能至关重要,而慢速数据库查询可能成为一个重要的瓶颈。优化不佳的查询和低效的数据库配置通常会导致应用程序性能迟缓,让用户感到沮丧并影响业务结果。Prisma Optimize 通过为开发者提供对查询性能的深入洞察,并允许他们对这些查询进行改进,从而迎头解决这些挑战。

Optimize 提供了一种强大的方式来分析和优化您的数据库查询。通过自动捕获详细指标(例如查询延迟),它可以让您精确找出应用程序性能下降的地方。您可以轻松查看和分析原始 SQL 语句,了解幕后发生的操作,从而清楚了解您的数据库如何被利用。

Optimize Query Insights Dashboard

请关注 Optimize,我们即将推出一些令人兴奋的新功能!👀

使用 Prisma Studio 轻松可视化和管理您的数据

管理数据库不必是一项充满原始 SQL 查询和命令行工具的复杂任务。Prisma Studio 提供了一个用户友好、可视化的界面,简化了开发者与数据库交互的方式。无论您是初学者还是经验丰富的开发者,Prisma Studio 都能让您轻松浏览、理解和操作您的数据。

Prisma Studio Dashboard

直观的数据探索和管理

Prisma Studio 提供了一个简单而强大的表格界面,让您可以快速查看和理解数据库中的数据。凭借完整的 CRUD 功能,您可以直接从界面创建、读取、更新和删除记录,而无需编写 SQL。直观的布局让您可以过滤、排序和分页数据,从而更容易找到特定记录并理解数据模式。

轻松导航关系

关系数据库通常涉及不同表之间复杂的关联。Prisma Studio 通过允许您点击关系字段并深入查看相关数据,使这些关系的导航变得无缝。这使得查看和编辑相关记录变得容易,同时保持数据完整性。

安全、就地编辑,实现安全数据管理

直接在数据库中编辑数据可能存在风险,但 Prisma Studio 通过其就地编辑功能最大限度地降低了这种风险。就像在电子表格中一样,您可以双击单元格编辑其值,但所有更改都必须在应用之前确认。这确保了避免意外编辑,并且您的数据保持一致和准确。

为什么大型团队选择 Prisma

Prisma 不仅适用于个人爱好项目或初创公司;它旨在支持成熟团队和企业公司的需求。Prisma 提供了一套强大的工具,提供既可扩展又安全的全面解决方案

  • 合规性和认证:Prisma 的工具已获得 SOC2 Type II、HIPAA、GDPR 和 ISO27001 认证,确保它们符合最高的安全和隐私标准。这使得 Prisma 成为对监管要求严格的行业的值得信赖的选择。
  • 可靠性和支持:Prisma 提供专门的支持,包括对 Accelerate 和 Prisma Postgres 等商业产品的 SLA。我们的企业客户受益于保证的响应时间和优先帮助,确保停机时间最短,问题解决更快。
  • 成熟的生态系统:凭借成熟、经过实战考验的 ORM 和无缝集成的工具,Prisma 支持企业级的性能和可扩展性。查询优化、全局缓存和可视化数据管理界面等功能使团队能够高效处理复杂的用例。
  • 在企业中得到验证:许多大型企业信任 Prisma 来处理他们的数据层需求,这证明了其以可靠性和健壮性支持关键任务应用程序的能力。

Prisma 不仅仅是一个开发工具——它是一个全面的解决方案,用于构建可扩展、高性能的应用程序,满足各种规模团队和应用程序的需求。

不要错过下一篇文章!

订阅 Prisma 邮件列表