Adrien Nayrat:GROUP BY 重排序

Adrien Nayrat:GROUP BY 重排序

💡 原文英文,约300词,阅读约需1分钟。
📝

内容提要

本文讨论了优化过程中探索多列GROUP BY子句的替代排序方式,通过同步GROUP BY子句的顺序与ORDER BY排序子句或排序顺序,可以避免排序操作。文章还介绍了一个新的GUC enable_group_by_reordering,可以禁用这种优化。

🎯

关键要点

  • 本文讨论了优化过程中探索多列GROUP BY子句的替代排序方式。
  • 通过同步GROUP BY子句的顺序与ORDER BY排序子句,可以避免排序操作。
  • Grouping不意味着任何排序,因此可以以任意顺序比较键。
  • Hash Agg利用了这一点,而Group Agg则按照查询中指定的顺序比较键。
  • 该补丁探索了键的替代排序,以寻找更便宜的排序方式。
  • GROUP BY键的排序可能与查询的其他部分相互作用。
  • 引入了新的GUC enable_group_by_reordering,以便在需要时禁用这种优化。
➡️

继续阅读