Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

max_memory_usage_* 会话设置

这些设置可在 system.settings 中查看,并由 源文件 自动生成。

max_memory_usage

类型
UInt64
默认值
0

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

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

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

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

对于以下聚合函数中来自 StringArray 参数的状态, 内存占用无法被完全跟踪:

  • min
  • max
  • any
  • anyLast
  • argMin
  • argMax

内存占用还会受到参数 max_memory_usage_for_usermax_server_memory_usage 的限制。

max_memory_usage_for_user

类型
UInt64
默认值
0

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

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

另请参见 max_memory_usage 的说明。

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

ALTER USER clickhouse_read SETTINGS max_memory_usage_for_user = 1000;

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

SELECT getSetting('max_memory_usage_for_user');
Navigation