> ## 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.

# max_memory_usage_* 会话设置

> ClickHouse 中 max_memory_usage_* 自动生成组下的会话设置。

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="max_memory_usage">
  ## max\_memory\_usage
</div>

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

Cloud 默认值：取决于副本上的 RAM 大小。

在单台服务器上运行单个查询时可使用的最大 RAM 量。
值为 `0` 表示不受限制。

此设置不考虑可用内存容量，也不考虑机器上的总内存容量。
该限制仅适用于单台服务器上的单个查询。

你可以使用 `SHOW PROCESSLIST` 查看每个查询当前的内存占用。
系统会跟踪每个查询的峰值内存占用，并将其写入日志。

对于以下聚合函数中来自 `String` 和 `Array` 参数的状态，
内存占用无法被完全跟踪：

* `min`
* `max`
* `any`
* `anyLast`
* `argMin`
* `argMax`

内存占用还会受到参数 [`max_memory_usage_for_user`](/docs/zh/reference/settings/session-settings/max-memory-usage#max_memory_usage_for_user)
和 [`max_server_memory_usage`](/docs/zh/reference/settings/server-settings/settings#max_server_memory_usage) 的限制。

<div id="max_memory_usage_for_user">
  ## max\_memory\_usage\_for\_user
</div>

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

在单台服务器上运行某个用户的查询时，允许使用的最大 RAM 量。零表示不受限制。

默认情况下，该值不受限制 (`max_memory_usage_for_user = 0`) 。

另请参见 [`max_memory_usage`](/docs/zh/reference/settings/session-settings/max-memory-usage#max_memory_usage) 的说明。

例如，如果要将名为 `clickhouse_read` 的用户的 `max_memory_usage_for_user` 设置为 1000 字节，可以使用以下语句

```sql theme={null}
ALTER USER clickhouse_read SETTINGS max_memory_usage_for_user = 1000;
```

你可以先退出客户端并重新登录，然后使用 `getSetting` 函数来验证是否已生效：

```sql theme={null}
SELECT getSetting('max_memory_usage_for_user');
```
