跳到主要內容

在資料庫中儲存大型物件或 BLOB

最佳化提供建議,以協助識別和解決因在資料庫中儲存大型物件而造成的效能問題。它也建議替代方法來減輕這些挑戰。

以下模型使用 Bytes 類型

model User {
id Int @id @default(autoincrement())
name String?
// Storing raw image data directly in the database
avatarBytes Bytes?
}

問題是什麼?

在資料庫中儲存大型二進位物件(例如圖片)可能會導致以下幾個挑戰

  • 過多的儲存空間使用量:大型物件佔用資料庫中大量的空間,使管理變得複雜。
  • 增加的 I/O 負載:處理大型物件會增加資料庫輸入/輸出操作的壓力。
  • 較慢的查詢效能:大多數傳統資料庫並未針對有效率地提供大型二進位內容進行最佳化,導致在查詢或更新期間效能下降。

此外,直接在資料庫中儲存大型物件可能會導致備份變得異常龐大,增加還原過程所需的時間。透過資料庫提供這些檔案也會產生效能瓶頸,尤其是在高流量或頻繁存取的情況下。