MySQL 索引失效场景——EXPLAIN 分析避免踩坑

发布时间:2026/7/27 19:43:43

MySQL 索引失效场景——EXPLAIN 分析避免踩坑 加了索引不代表一定会走。这篇把最常见的索引失效场景讲清楚。一、常见失效场景-- 1. 对索引列使用函数WHEREDATE(create_time)2026-07-24-- ❌WHEREcreate_time2026-07-24-- ✅ANDcreate_time2026-07-25-- 2. 隐式类型转换WHEREphone1234567890-- ❌ phone 是 varcharWHEREphone1234567890-- ✅-- 3. LIKE 以 % 开头WHEREnameLIKE%张三%-- ❌以%开头不走WHEREnameLIKE张三%-- ✅以常量开头走-- 4. OR 条件中有未索引列WHEREname张三ORage25-- ❌ age 无索引WHEREname张三ANDage25-- ✅-- 5. 联合索引跳过最左列-- 索引(a,b,c)WHEREb1ANDc2-- ❌ 跳过了 aWHEREa1ANDc2-- ✅ a 走索引c 不走-- 6. ! 或 操作WHEREstatus!1-- ❌ 不等于不走索引WHEREstatusIN(0,2)-- ✅-- 7. IS NULL / IS NOT NULLWHEREnameISNOTNULL-- ❌ 大部分数据非空时不走二、怎么判断EXPLAINSELECT*FROMuserWHEREphone13800000000;-- type ref → 走索引 ✅-- type ALL → 没走索引 ❌ 觉得有用的话点赞 关注【张老师技术栈】吧每周更新 Java/Python/MySQL 实战干货不让你白来。

相关新闻