MySQL
MySQL 联合索引:为什么建了索引却没走?
很多项目里最容易出现的误区,是“我已经建索引了,所以查询一定快”。实际上,索引是否有效,要看查询条件是否能利用索引结构,以及优化器估算的成本。
联合索引首先看最左列
假设建立索引 (company_id, status, created_at),这类查询通常比较容易利用它:
WHERE company_id = 1 AND status = 1 AND created_at >= '2026-08-01'
如果直接跳过 company_id 只查 status,这个联合索引通常不能发挥预期作用。
不要只凭感觉,先看 EXPLAIN
EXPLAIN 能帮助你看到使用了哪个索引、访问类型、预计扫描多少行。项目优化应该先观察执行计划,再决定是否改索引。