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

返される行数が多すぎる場合

Optimizeは、クエリから返される過剰な行数によって引き起こされるパフォーマンスの問題を特定し、解決するのに役立つ推奨事項を提供します。

次のUserモデルを対象とするクエリは、takeオプションを提供していません。

await prisma.user.findMany({ where: { email: "janedoe@gmail.com" }})

何が問題ですか?

クエリが制限を指定せずに実行されると、関連するすべての行が返され、いくつかの問題につながる可能性があります。

ユーザーエクスペリエンス

  • データの閲覧: ユーザーは通常、一度にすべてのデータではなく、データの一部のみを必要とします。
  • ユーザーのデバイスへの影響: 一度にすべてのデータを表示すると、ユーザーのデバイスリソースに負担がかかる可能性があります。たとえば、Webアプリケーションで数千行をロードすると、ブラウザが遅くなったりフリーズしたりし、大量のメモリとCPUリソースを消費する可能性があります。
  • 待ち時間: 大量の行を取得すると、データベースからユーザーのデバイスにデータを取得するのにかかる時間が大幅に増加する可能性があります。

リソース使用率

  • 不要なデータロード: 必要以上のデータを処理すると、貴重なリソースが無駄になります。
  • メモリ使用量: 過剰なメモリ消費は非効率につながり、深刻な場合には、システムがメモリ不足になり、サービスが中断する可能性があります。