> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# optimize_aggregation_in_order_* 会话设置

> ClickHouse 的 optimize_aggregation_in_order_* 自动生成分组中的会话设置。

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>类型</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>默认值</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          无需重启即可更改
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

这些设置可在 [system.settings](/docs/zh/reference/system-tables/settings) 中查看，并根据 [源代码](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp)自动生成。

<div id="optimize_aggregation_in_order">
  ## optimize\_aggregation\_in\_order
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

在 [MergeTree](/docs/zh/reference/engines/table-engines/mergetree-family/mergetree) 表中，对按相应顺序聚合数据的 [SELECT](/docs/zh/reference/statements/select/index) 查询启用 [GROUP BY](/docs/zh/reference/statements/select/group-by) 优化。

可能的值：

* 0 — `GROUP BY` 优化已禁用。
* 1 — `GROUP BY` 优化已启用。

**另请参见**

* [GROUP BY 优化](/docs/zh/reference/statements/select/group-by#group-by-optimization-depending-on-table-sorting-key)

<div id="optimize_aggregation_in_order_limit">
  ## optimize\_aggregation\_in\_order\_limit
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "1"},{"label": "新增设置：当 `ORDER BY` 是 `GROUP BY` 排序描述的前缀时，将 `LIMIT` 下推到按顺序聚合中，以便在满足条件后提前终止。"}]}]} />

启用后，如果按顺序聚合处于活动状态，会将 LIMIT 下推到聚合步骤中，以便在生成足够数量的分组后提前终止。当 ORDER BY 与 GROUP BY 键前缀匹配时，这样可以减少读取的数据量。它可能会降低 `rows_before_limit_at_least` 报告的值；如果需要精确计数，请使用 `exact_rows_before_limit`。
