【问题标题】:Why does clickhouse need so much memory for a simple query?为什么 clickhouse 需要这么多内存来完成一个简单的查询?
【发布时间】:2021-08-19 09:06:26
【问题描述】:

我有一个简单的查询,例如:

SELECT w, x, y, z FROM my_table
WHERE microsecs >= 1234 AND microsecs <= 2345 AND a='foo' AND b='bar'
ORDER BY microsecs ASC

我在桌子上的主键是 (a, b, microsecs)。

查询应该返回大约 2.95 亿行。我正在使用 clickhouse-driver 通过execute_iter 流式传输数据。

尽管如此,我需要将max_memory_usage 设置为大约 48GB 才能使查询成功。

为什么 clickhouse 需要这么多内存来进行简单的查询,我该如何减少所需的内存?

【问题讨论】:

    标签: clickhouse


    【解决方案1】:

    我在 clickhouse_en 电报频道和I was pointed to optimizing read in-order 上的文档中提出了这个问题。我将我的 ORDER BY 从 ORDER BY microsecs 更改为 ORDER BY a, b, microsecs,所需的内存急剧下降。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 2017-09-14
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    相关资源
    最近更新 更多