LIKE 操作によるフルテーブルスキャン
Optimize は、LIKE
操作によるフルテーブルスキャンによって引き起こされるパフォーマンスの問題を特定して解決するのに役立つ推奨事項を提供します。
User
モデルを対象とする次のクエリは、contains
および endsWith
をオプションとして提供します。これらは、LIKE
および ILIKE
SQL 演算子に変換されます。
await prisma.user.findMany({
where: {
email: { contains: "gmail.com" },
name: { endsWith: "Burk" }
}
})
問題点
SQL の LIKE
および ILIKE
演算子は、フルテーブルスキャンにつながる可能性があり、特に大規模なデータセットではパフォーマンスに影響を与える可能性があります
UX
- 読み込み時間の遅延: フルテーブルスキャンは、データの取得にかかる時間を大幅に増加させ、ユーザーの待ち時間が長くなる原因となります。
リソース使用率
- リソース使用量の増加: フルテーブルスキャンは、CPU、メモリ使用量、およびディスク I/O を増加させ、データベースのシステムリソースに負荷をかけます。
- コストの増加: サーバーレスデータベースの料金プランでは、より集中的なリソース使用量は、より高いコストにつながる可能性があります。