示例
示例
-- (user_id, status) 复合索引:分组列与索引前缀一致
EXPLAIN SELECT user_id, status, COUNT(*)
FROM orders
GROUP BY user_id, status;
-- MySQL 可能显示:Using index for group-by
-- PG:观察 HashAggregate 与 GroupAggregate
EXPLAIN (ANALYZE) SELECT user_id, status, COUNT(*)
FROM orders
GROUP BY user_id, status;| MySQL | Using index for group-by 表示借索引完成分组,避免临时表与排序 |
|---|---|
| PostgreSQL | HashAggregate 走哈希表;GroupAggregate 依赖有序输入 |
| 哈希聚合 | 受 work_mem 限制,超限时分批处理(PG 输出中显示 Batches) |