LIKE 操作引起的全表掃描
Optimize 提供建議,幫助你識別和解決由 LIKE 操作引起的全表掃描造成的效能問題。
以下針對 User 模型的查詢提供了 contains 和 endsWith 選項,它們分別轉換為 SQL 中的 LIKE 和 ILIKE 運算子。
await prisma.user.findMany({
where: {
email: { contains: "gmail.com" },
name: { endsWith: "Burk" }
}
})
問題是什麼?
SQL 中的 LIKE 和 ILIKE 運算子可能導致全表掃描,從而影響效能,尤其是在處理大型資料集時。
使用者體驗
- 載入時間變慢:全表掃描會顯著增加資料檢索所需的時間,導致使用者等待時間更長。
資源利用
- 資源使用增加:全表掃描會增加 CPU、記憶體使用和磁碟 I/O,從而給資料庫的系統資源帶來壓力。
- 成本增加:在無伺服器資料庫定價方案中,更密集的資源使用可能導致更高的成本。