MySQL 索引优化:从慢查询到毫秒响应

一、为什么慢

没有合适索引时,MySQL 只能全表扫描。用 EXPLAIN 查看执行计划,关注 type 与 rows:

EXPLAIN SELECT * FROM orders WHERE user_id = 100 AND status = 1;

二、组合索引最左前缀

建立 (user_id, status) 组合索引,查询必须命中最左列才能生效。

ALTER TABLE orders ADD INDEX idx_user_status (user_id, status);

三、避免索引失效

不要在索引列上做函数运算或隐式类型转换,否则索引失效回退全表扫描。