由 LIKE 操作引起的全表扫描
Optimize 提供的建议可帮助你识别和解决由 LIKE
操作的全表扫描引起的性能问题。
¥Optimize provides recommendations to help you identify and resolve performance issues caused by full table scans from LIKE
operations.
以下针对 User
模型的查询提供 contains
和 endsWith
作为选项,它们转换为 LIKE
和 ILIKE
SQL 运算符。
¥The following query targeting the User
model provides contains
and endsWith
as options, which translate to LIKE
and ILIKE
SQL operators.
await prisma.user.findMany({
where: {
email: { contains: "gmail.com" },
name: { endsWith: "Burk" }
}
})
问题是什么?
¥What is the problem?
SQL 中的 LIKE
和 ILIKE
运算符可能导致全表扫描,这可能会影响性能,尤其是在处理较大数据集时:
¥LIKE
and ILIKE
operators in SQL can lead to full table scans, potentially impacting performance, especially with larger datasets:
UX
-
加载时间较慢:全表扫描会显著增加检索数据所需的时间,导致用户等待时间更长。
¥Slower load times: Full table scans can significantly increase the time it takes to retrieve data, leading to longer wait times for users.
资源利用率
¥Resource utilization
-
资源使用增加:全表扫描会增加 CPU、内存使用量和磁盘 I/O,从而给数据库的系统资源带来压力。
¥Increased resource usage: Full table scans increase CPU, memory usage, and disk I/O, straining system resources for your database.
-
成本增加:在无服务器数据库定价方案中,更密集的资源使用率会导致更高的成本。
¥Increased costs: In serverless database pricing plans, more intensive resource usage can translate into higher costs.