跳至主要内容

由 LIKE 操作引起的完整表扫描

优化提供建议,以帮助您识别和解决由 LIKE 操作引起的完整表扫描所导致的性能问题。

以下针对 User 模型的查询提供了 containsendsWith 作为选项,它们转换为 LIKEILIKE SQL 运算符。

await prisma.user.findMany({ 
where: {
email: { contains: "gmail.com" },
name: { endsWith: "Burk" }
}
})

有什么问题?

SQL 中的 LIKEILIKE 运算符可能会导致完整表扫描,从而可能影响性能,尤其是在较大的数据集上

用户体验

  • 加载时间变慢: 完整表扫描会大大增加检索数据所需的时间,从而导致用户等待时间更长。

资源利用率

  • 资源使用量增加: 完整表扫描会增加 CPU、内存使用量和磁盘 I/O,从而导致数据库的系统资源紧张。
  • 成本增加: 在无服务器数据库定价方案中,更密集的资源使用量可能会转化为更高的成本。