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

繰り返されるクエリ

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

Post モデルをターゲットとする以下のクエリは、同一のパラメータで繰り返し実行されます。

await prisma.post.findMany({
where: {
published: true
},
take: 20
})

問題点は何ですか?

同じクエリが短い時間枠内で同じパラメータで複数回実行されると、以下の問題につながる可能性があります。

  • 時間の浪費: アプリケーションとデータベース間に新しい接続が確立され、クエリとそのパラメータがデータベースに送信され、データベースがクエリを処理し、結果がアプリケーションに返送される可能性があります。
  • リソース使用量の増加: クエリの実行は、CPUとメモリの使用量、およびディスクI/Oを増加させ、データベースのシステムリソースに負荷をかけます。
  • コストの増加: サーバーレスデータベースの料金モデルでは、リソース使用量の増加はコストの増加につながる可能性があります。
情報

Prisma Accelerateを使用したキャッシングによる繰り返されるクエリの回避方法の詳細については、Prisma Accelerateドキュメントを参照してください。