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

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 を増加させ、データベースのシステムリソースに負荷をかけます。
  • コストの増加: サーバーレスデータベースの料金プランでは、より集中的なリソース使用量は、より高いコストにつながる可能性があります。