LIKE 操作导致的全表扫描
优化功能提供建议,帮助您识别并解决由 `LIKE` 操作导致的全表扫描所引起的性能问题。
以下针对 `User` 模型的查询提供了 `contains` 和 `endsWith` 选项,它们分别转换为 `LIKE` 和 `ILIKE` SQL 运算符。
await prisma.user.findMany({
where: {
email: { contains: "gmail.com" },
name: { endsWith: "Burk" }
}
})
问题是什么?
SQL 中的 `LIKE` 和 `ILIKE` 运算符可能导致全表扫描,从而潜在地影响性能,尤其是在大型数据集的情况下。
用户体验
- 加载时间变慢:全表扫描会显著增加数据检索所需的时间,导致用户等待时间更长。
资源利用率
- 资源使用增加:全表扫描会增加 CPU、内存使用量和磁盘 I/O,从而给数据库系统资源带来压力。
- 成本增加:在无服务器数据库定价计划中,更密集的资源使用可能导致更高的成本。