返される行数が多すぎる場合
Optimizeは、クエリから返される過剰な行数によって引き起こされるパフォーマンスの問題を特定し、解決するのに役立つ推奨事項を提供します。
次のUser
モデルを対象とするクエリは、take
オプションを提供していません。
await prisma.user.findMany({ where: { email: "janedoe@gmail.com" }})
何が問題ですか?
クエリが制限を指定せずに実行されると、関連するすべての行が返され、いくつかの問題につながる可能性があります。
ユーザーエクスペリエンス
- データの閲覧: ユーザーは通常、一度にすべてのデータではなく、データの一部のみを必要とします。
- ユーザーのデバイスへの影響: 一度にすべてのデータを表示すると、ユーザーのデバイスリソースに負担がかかる可能性があります。たとえば、Webアプリケーションで数千行をロードすると、ブラウザが遅くなったりフリーズしたりし、大量のメモリとCPUリソースを消費する可能性があります。
- 待ち時間: 大量の行を取得すると、データベースからユーザーのデバイスにデータを取得するのにかかる時間が大幅に増加する可能性があります。
リソース使用率
- 不要なデータロード: 必要以上のデータを処理すると、貴重なリソースが無駄になります。
- メモリ使用量: 過剰なメモリ消費は非効率につながり、深刻な場合には、システムがメモリ不足になり、サービスが中断する可能性があります。