如果一条查询语句的 GROUP BY 子句带有条件,例如 WHERE 条件也参与分组,那么仅在 GROUP BY 的条件列上建立索引能否加速查询?为什么?
考察说明
考察对索引作用原理、查询执行计划以及 GROUP BY 与 WHERE 条件关系的理解
回答思路
- 能区分 WHERE 和 GROUP BY 在查询中的不同作用
- 能说明索引匹配查询条件(WHERE)和排序分组(GROUP BY)的基本原理
- 能分析在带条件的 GROUP BY 场景下,仅建 GROUP BY 列索引可能不够,需考虑 WHERE 列的过滤
- 能提及覆盖索引或复合索引对查询的优化效果
- 能建议通过执行计划(EXPLAIN)验证索引效果