mysql的like查询全表扫导致超时
在处理一个接口超时的时候,分析后发现是sql中like导致全表扫描。
like 语法可以改成 LOCATE('keyword', `field`)>0;其中keyword是入参关键字,field是数据库对应的字段值。
举例:
like:SELECT `column` FROM `table` WHERE field like concat('%',#{keyword},'%')
locate : SELECT `column` FROM `table` WHERE locate ('keyword', `field`) >0
使用like,还是使用locate position高效的前提条件是查询的字段上面已经建立起了索引。