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,為您與資料庫互動奠定了堅實的基礎。人性化的架構、自動產生的遷移和直覺式的查詢,提高了應用程式開發人員的生產力,讓他們能夠快速建構功能。型別安全的原始 SQL 還提供了最大的靈活性,可進行進階查詢,而不會犧牲開發者體驗。
  • 嚴謹的應用程式既需要資料庫快取層,也需要高效的連線管理,以保持查詢快速並減少資料庫伺服器的負載。手動使用 Redis 等工具實作快取或處理連線池可能既複雜又容易出錯。Prisma Accelerate 透過結合精細的快取控制(每個查詢使用 TTL 和 SWR 參數)與進階連線池,簡化了此流程,有效地管理可重複使用的資料庫連線,以提升效能和可擴展性。
  • 事件驅動架構對於可擴展且複雜的應用程式至關重要。然而,使用 Apache Kafka 等產品建構您自己的事件和佇列系統,很快就會變得非常複雜。Prisma Pulse 直接從您的資料庫對資料庫變更事件做出反應,並以型別安全的方式將其傳遞到您的應用程式,因此您可以輕鬆建構事件驅動和即時應用程式。
  • 不確定如何讓那一個資料庫查詢更快嗎?透過 Prisma Optimize,您可以深入了解 Prisma ORM 發送的所有查詢,並輕鬆識別如何使其更快。這讓您可以確保您的資料庫查詢和應用程式以最佳效能運作。Optimize 很快將讓您能夠更輕鬆地編寫更好的查詢。
  • 探索資料庫並與之互動應該是簡單明瞭的,而不是一件苦差事。自訂工具或原始 SQL 很容易讓您忽略資料。Prisma Studio 提供了一個簡單的表格介面,可快速檢視和理解您的資料,具有完整的 CRUD 功能、篩選、排序和分頁。 它允許無縫導航關聯式資料和安全的就地編輯,確保資料完整性。

Accelerate、Pulse、Optimize 和 Studio 與 Prisma ORM 無縫整合,為工程團隊在建構應用程式時遇到的常見挑戰提供解決方案。這些工具將您的開發團隊從管理 SQL、Redis、Kafka 和自訂資料管理介面的複雜性中解放出來,讓他們專注於真正重要的事情:為您的使用者創造價值。透過這些解決方案,您可以簡化工作流程、提升效能並確保資料完整性,同時保持出色的開發者體驗。

一個能隨著您的應用程式擴展和成長的 ORM

Prisma ORM 開創了型別安全 ORM 的概念,並迅速成為 Node.js 和 TypeScript 生態系統中最受歡迎的 ORM!

它不僅是 npm 上下載次數最多的 TypeScript ORM,也是下一代 Web 框架(如 RedwoodJS(由 GitHub 共同創辦人 Tom Preston-Werner 建立))或新興開發平台(如 Wasp (YC 21) 和 Amplication(最近在種子輪募資中籌集了 660 萬美元))的基礎。

快速開始使用 Prisma ORM

Prisma ORM 的主要優點之一是它很容易上手!我們不斷從社群聽到,由於人性化的架構、簡單的遷移和直覺式的查詢 API,幾乎沒有學習曲線。

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

1. 人性化的架構

Prisma ORM 配備了自己的建模語言,該語言迅速在開發人員中普及

VS Code 擴充功能提供了您能想像到的絕佳開發者體驗:語法突顯、自動完成、跳轉到定義等等!

2. 簡單的遷移

以下是簡單的命令,它採用上面的架構並針對您的資料庫執行相應的遷移

Prisma ORM 的遷移系統經過精心設計,旨在消除許多開發人員在整個職業生涯中更改資料庫架構時所經歷的痛苦。

工作流程考慮了從開發生產的所有階段,並旨在提供可預測的遷移,無論您是自己在本機上工作還是在團隊的 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 的開發更加愉快。

從其他語言(如 PythonGo)的 Prisma Client,到基於 Prisma 的 DSL(如 Zenstack),再到產生器(例如,用於 視覺化資料庫架構產生 Zod 型別),以及許多其他工具,如中介軟體、Client 擴充功能、CLI 等!查看我們的 生態系統頁面,以查看我們展示的工具。

我們感謝活躍且蓬勃發展的社群,他們持續為 Prisma 生態系統建構有價值的工具。

基於 Prisma ORM 建構的真實世界開源專案

最後,我們很高興看到 Prisma ORM 在 真實世界開源專案中的使用情況。從獨立駭客專案到獲得資金的新創公司,如果您想了解基於 Prisma ORM 建構的生產級應用程式是什麼樣子的,這些範例專案是一個很好的參考!

如果您有興趣了解更多資訊,請查看我們在 YouTube 上發布的 開源公司創辦人訪談

超越 ORM

正如本文開頭所提到的,Prisma 提供的價值不僅止於 ORM。我們已經看到,隨著時間的推移,關鍵任務應用程式在額外功能和基礎架構方面的需求不斷增長,因此我們建構了應對這些需求的工具。

透過 Pulse 實現即時資料庫事件和事件驅動工作流程

在當今快節奏的世界中,應用程式需要比以往任何時候都更具回應性和反應性。使用者期望獲得即時更新,無論他們是在追蹤即時體育賽事比分、追蹤股市變化,還是使用協作工具。從頭開始建構這些功能既複雜又耗時,需要廣泛了解事件驅動架構和即時資料串流。Prisma Pulse 簡化了此流程,讓您可以輕鬆地將即時資料庫事件整合到您的應用程式中。透過 Prisma Pulse,您可以專注於提供動態、引人入勝的使用者體驗,而無需管理複雜的基礎架構。

對資料庫中的變更做出反應的最簡單方式

透過 Pulse,在您的應用程式中對資料庫變更事件做出反應就像

  1. 將您的資料庫連線到 Prisma Pulse 一樣簡單
  2. 為 Prisma Client 安裝 Pulse 擴充功能
  3. 開始使用 Prisma Client 串流資料庫變更

Prisma Client 提供了一個強大的 API 來串流資料庫變更事件。在最簡單的形式中,您可以串流在給定模型(例如,以下範例中稱為 Message 的模型)上發生的每個寫入操作,如下所示

如果您對想要傳遞到應用程式的事件有更具體的要求,您可以傳遞篩選器。例如,您可以篩選僅已刪除的訊息由特定使用者建立的訊息:

僅串流來自特定使用者的新訊息

查看我們的 現成可用的範例(例如 即時排行榜聊天應用程式),以試用 Prisma Pulse。

A real-time chat app is only one of the use cases you can easily build with Prisma Pulse.

即時聊天應用程式只是您可以使用 Prisma Pulse 輕鬆建構的用例之一。

透過 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 和 Pulse 等商業產品的 SLA。我們的企業客戶受益於保證的回應時間和優先協助,確保最短的停機時間和更快的問題解決。
  • 成熟的生態系統:Prisma 擁有成熟、經過實戰考驗的 ORM 和無縫整合的工具,支援企業級效能和可擴展性。查詢最佳化、即時事件串流和視覺化資料管理介面等功能使團隊能夠有效處理複雜的用例。
  • 在企業中得到驗證:許多大型企業信任 Prisma 來處理其資料層需求,這證明了其支援具有可靠性和穩健性的關鍵任務應用程式的能力。

Prisma 不僅僅是一個開發工具,它是一個全面的解決方案,用於建構可擴展、高效能的應用程式,以滿足各種規模的團隊和應用程式的需求。

不要錯過下一篇文章!

訂閱 Prisma 電子報