跳到主要內容

LIKE 運算造成的全表掃描

Optimize 提供建議,協助您識別並解決因 LIKE 運算造成全表掃描而導致的效能問題。

以下針對 User 模型的查詢提供 containsendsWith 選項,這些選項會轉譯為 LIKEILIKE SQL 運算子。

await prisma.user.findMany({ 
where: {
email: { contains: "gmail.com" },
name: { endsWith: "Burk" }
}
})

問題是什麼?

SQL 中的 LIKEILIKE 運算子可能會導致全表掃描,進而影響效能,尤其是在較大的資料集中

UX

  • 載入時間較慢: 全表掃描會大幅增加擷取資料所需的時間,導致使用者等待時間更長。

資源利用率

  • 資源使用量增加: 全表掃描會增加 CPU、記憶體使用量和磁碟 I/O,對資料庫的系統資源造成壓力。
  • 成本增加: 在無伺服器資料庫定價方案中,更密集的資源使用量可能會轉化為更高的成本。