メインコンテンツへスキップ

データベースへの大きなオブジェクトまたはBLOBの保存

Optimizeは、データベースに大きなオブジェクトを保存することによって引き起こされるパフォーマンスの問題を特定し解決するための推奨事項を提供します。また、これらの課題を軽減するための代替アプローチも提案します。

以下のモデルはBytes型を使用します

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

問題点とは?

データベースに大きなバイナリオブジェクト(画像など)を保存すると、いくつかの課題が生じる可能性があります

  • 過剰なストレージ使用量:大きなオブジェクトはデータベース内でかなりのスペースを占有し、管理を複雑にします。
  • I/O負荷の増加:大きなオブジェクトを処理すると、データベースの入出力操作に負担がかかります。
  • クエリパフォーマンスの低下:ほとんどの従来のデータベースは、大きなバイナリコンテンツを効率的に提供するようには最適化されておらず、クエリや更新中にパフォーマンスが低下します。

さらに、大きなオブジェクトをデータベースに直接保存すると、バックアップが不釣り合いに大きくなり、復元プロセスに必要な時間が増加する可能性があります。データベースを介してこれらのファイルを提供することも、特に高トラフィックまたは頻繁なアクセスシナリオにおいて、パフォーマンスのボトルネックを引き起こします。

© . All rights reserved.