LIKE '%abc' 变慢是因为B+树索引不支持前导通配符,导致全表扫描;仅LIKE 'abc%'等前缀匹配可走索引,中间或开头含%均失效,且受collation、函数包裹等因素影响索引使用。LIKE 为什么在开头加 % 就变慢因为数据库无法用索引做前缀匹配,LIKE '%abc' 必须全表扫描——B+ 树索引只支持从左到右的最左前缀匹配,% 在开头等于放弃索引定位能力。常见错误现象:EXPLAIN 显示 type: ALL、key: NULL,哪怕字段上有索引也完全不走。使用场景:模糊搜索用户昵称、商品标题、日志内容等“包含某字符串”的需求,但业务上往往误以为 LIKE '%关键词%' 是唯一写法。MySQL 5.7+、PostgreSQL、SQL Server 都受此限制,行为一致Oracle 的 LIKE 同样不走索引(除非配合函数索引或全文索引)即使加了 FORCE INDEX 也没用,优化器知道索引无效,强制也没意义能用索引的 LIKE 写法有哪些只有 LIKE 'abc%' 这类前缀固定、后缀可变的模式才能走索引;LIKE 'ab%c' 中间有 % 也不行。实操建议: ARTi.PiCS ARTi.PiCS是一款由AI驱动的虚拟头像生产器,可以生成200多个不同风格的酷炫虚拟头像

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐