示例
示例
ALTER TABLE orders
ADD INDEX idx_user_status_created (user_id, status, created_at);
EXPLAIN SELECT * FROM orders
WHERE user_id = 100 AND status = 'paid';
-- key: idx_user_status_created
-- key_len 对应前两列的字节数:第 3 列 created_at 未参与索引查找| 常见宽度 | INT 4 字节、BIGINT 8、DATE 3、DATETIME 5(不含小数秒)、utf8mb4 字符列按 4 字节/字符 |
|---|---|
| 可空列 | 再加 1 字节 NULL 标志位 |
| VARCHAR | 另加 1-2 字节长度前缀(按列声明的字节上限决定) |
用 key_len 反推“实际用了复合索引前几列”,是验证前缀规则的直接手段。