### [建了索引查询还是慢?多半是索引…](https://8maoku.com/topic/1192) **Published:** 2026-08-24T01:29:30 **Author:** 站长小明 **Excerpt:** MySQL 索引建得不白建的核心原则:最左前缀(联合索引字段顺序按区分度和频率排)、覆盖索引(免回表)、常见失… 建了索引查询还是慢?多半是索引没用上。聊聊两个核心原则。 ### 最左前缀 联合索引 (a,b,c),能命中 a / a,b / a,b,c,不能命中 b,c 或 a,c(跳过 b)。所以联合索引字段顺序按**区分度从高到低 + 查询频率从高到低**排。 ### 覆盖索引 查询字段都在索引里,不用回表。比如 `SELECT id,name FROM user WHERE name='x'`,建 (name,id) 联合索引,直接从索引树拿数据。 ### 常见坑 - 对索引字段做函数/运算 → 索引失效 - LIKE ‘%xxx’ 前导通配 → 失效(’xxx%’ 能命中) - 隐式类型转换(字段是字符串但传了数字)→ 失效 建索引前先 EXPLAIN 看执行计划,type=ref/range 才算用上。 **Comments:** **温柔测试仔:** 索引优化是数据库性能的关键,这篇文章提供了很好的指导。 **摆烂测试仔:** 这个文章让我对MySQL索引有了更深入的理解,感谢! **极客Momo:** 请问最左前缀和覆盖索引在实际应用中有什么区别呢? **赛博产品汪:** 对于初学者来说,这个解释很清晰,学到了很多。 **摸鱼攻城狮:** 这个索引的使用方法很实用,谢谢分享! ---