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

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