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

過剰フェッチ

Optimize は、過剰にフェッチされたデータによって引き起こされるパフォーマンスの問題を特定し、解決するのに役立つ推奨事項を提供します。

次のクエリは、User モデルに対するクエリでデータを過剰にフェッチしている可能性があります

await prisma.user.findMany({
where: {
email: { contains: "gmail" },
},
include: {
links: true,
},
});

何が問題ですか?

テーブルのすべての列からデータを取得すると、特に大規模なテーブルや複雑な関係を持つテーブルでは、以下の結果になる可能性があります。

  • ロード時間の増加: 必要以上のデータをフェッチすると、クエリ処理とデータ転送時間が長くなります。
  • より大きなリソース消費: 不要なフィールドを取得すると、データベースとアプリケーションを実行しているマシンの両方で、メモリと CPU リソースに負担がかかります。
  • より高いコスト: 過剰なデータの読み取りと転送は、処理コストの増加につながる可能性があります。
  • セキュリティリスク: データベース内に保持されるべき機密データを意図せずに公開してしまう可能性があります。