オーバーフェッチ
Optimizeは、オーバーフェッチされたデータによって引き起こされるパフォーマンスの問題を特定し、解決するための推奨事項を提供します。
以下のクエリは、`User` モデルに対するクエリでデータをオーバーフェッチしている可能性があります。
await prisma.user.findMany({
where: {
email: { contains: "gmail" },
},
include: {
links: true,
},
});
何が問題ですか?
テーブルのすべてのカラムからデータを取得することは、特に大規模なテーブルや複雑なリレーションシップを持つテーブルの場合、以下の結果につながる可能性があります。
- ロード時間の増加: 必要以上のデータをフェッチすると、クエリ処理時間とデータ転送時間が長くなります。
- リソース消費の増大: 不要なフィールドを取得すると、データベースとアプリケーションを実行しているマシンの両方で、メモリとCPUリソースに負担がかかります。
- コストの増加: 余分なデータを読み取り、転送すると、処理コストが増加する可能性があります。
- セキュリティリスク: データベース内に保持すべき機密データが、意図せず公開されてしまう可能性があります。