【发布时间】:2023-04-03 03:16:02
【问题描述】:
我有一个使用 like 和 "%search_pattern%" 的查询,如果我遇到 5-6 个并行请求,它会占用很高的 CPU 利用率,我的表有大约 3000 万个数据。
可以使用任何替代方法或算法来优化吗?
例如:
SELECT * FROM USER_DETAILS U WHERE U.NAME LIKE %JOHN%';
CPU 利用率将达到 700%
【问题讨论】:
我有一个使用 like 和 "%search_pattern%" 的查询,如果我遇到 5-6 个并行请求,它会占用很高的 CPU 利用率,我的表有大约 3000 万个数据。
可以使用任何替代方法或算法来优化吗?
例如:
SELECT * FROM USER_DETAILS U WHERE U.NAME LIKE %JOHN%';
CPU 利用率将达到 700%
【问题讨论】:
当您使用 LIKE '%JOHN%' 时,mysql 不能使用索引,并且必须将每个 ROW 与字符串进行比较。使用索引的唯一方法是使用 LIKE 'JOHN%' ´。查看 NAME
上是否有索引【讨论】: