如何优化SQL查询中的LIKE优化_避免在开头使用通配符

张开发
2026/4/20 10:55:58 15 分钟阅读

分享文章

如何优化SQL查询中的LIKE优化_避免在开头使用通配符
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多个不同风格的酷炫虚拟头像

更多文章