LIKE 操作导致的全表扫描
Optimize 提供建议,帮助您识别和解决因 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,从而给数据库的系统资源带来压力。
- 增加成本: 在无服务器数据库定价计划中,更集中的资源使用量可能会转化为更高的成本。