由 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,从而导致数据库的系统资源紧张。
- 成本增加: 在无服务器数据库定价方案中,更密集的资源使用量可能会转化为更高的成本。