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,對資料庫的系統資源造成壓力。
- 成本增加: 在無伺服器資料庫定價方案中,更密集的資源使用量可能會轉化為更高的成本。