跳到主要内容

LIKE 操作引起的全表扫描

Optimize 提供建议,帮助你识别和解决由 LIKE 操作引起的全表扫描造成的性能问题。

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

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

问题是什么?

SQL 中的 LIKEILIKE 操作符可能导致全表扫描,从而影响性能,尤其是在处理大型数据集时。

用户体验

  • 加载时间变慢:全表扫描会显著增加数据检索所需的时间,导致用户等待时间更长。

资源利用

  • 资源使用增加:全表扫描会增加 CPU、内存使用和磁盘 I/O,从而给数据库的系统资源带来压力。
  • 成本增加:在无服务器数据库定价方案中,更密集的资源使用可能导致更高的成本。
© . All rights reserved.