示例
示例
EXPLAIN SELECT * FROM orders
WHERE user_id = 100 OR status = 'paid';
-- 可能输出:Using union(idx_user, idx_status); Using where
-- 用提示验证单索引方案(对比不同选择下的计划)
EXPLAIN SELECT * FROM orders
WHERE user_id = 100 OR status = 'paid' IGNORE INDEX (idx_status);| intersect | 多个条件各自走索引后取交集(AND 组合) |
|---|---|
| union | 多个条件结果并集(OR 组合) |
| 成本特点 | 合并需要排序去重;更贴合查询的复合索引通常更稳 |