在資料庫中儲存大型物件或BLOB
Optimize 提供建議,以幫助識別和解決因在資料庫中儲存大型物件而導致的效能問題。它還提出了緩解這些挑戰的替代方法。
以下模型使用 Bytes 型別
model User {
id Int @id @default(autoincrement())
name String?
// Storing raw image data directly in the database
avatarBytes Bytes?
}
問題是什麼?
在資料庫中儲存大型二進位制物件(例如圖片)可能會帶來多項挑戰
- 儲存使用過多:大型物件佔用資料庫中大量空間,使管理複雜化。
- I/O 負載增加:處理大型物件會增加資料庫輸入/輸出操作的負擔。
- 查詢效能下降:大多數傳統資料庫未針對高效提供大型二進位制內容進行最佳化,導致在查詢或更新期間效能下降。
此外,將大型物件直接儲存在資料庫中可能導致備份檔案過大,從而增加恢復過程所需的時間。透過資料庫提供這些檔案也會產生效能瓶頸,尤其是在高流量或頻繁訪問的情況下。