一 问题描述
工作中经常遇到这种模糊匹配的慢sql:
select * from 表名 where 字段 like '%字符串%';
由于前面有%,导致无法走该字段上的索引。
二 解决办法
① 给该字段创建一个全文索引
CREATE FULLTEXT INDEX 索引名 ON 表名 (字段名);
② 改写sql,使用匹配全文索引的语法
SELECT *
FROM 表名
WHERE MATCH(字段名) AGAINST('字符串' IN NATURAL LANGUAGE MODE);