【问题标题】:Memory limit exceeded when running very simple query in Clickhouse在 Clickhouse 中运行非常简单的查询时超出内存限制
【发布时间】:2021-12-28 01:35:33
【问题描述】:

我有一个使用ReplacingMergeTree 引擎的非常大的表(730M 行)。即使在运行微不足道的查询时,我也开始出现“超出内存限制(用于查询)”。

例如,SELECT * FROM my_table LIMIT 5 给出:

Code: 241. DB::Exception: Received from localhost:9000. DB::Exception: Memory limit (for query) exceeded: would use 24.50 GiB (attempt to allocate chunk of 26009509376 bytes), maximum: 9.31 GiB: While executing MergeTree. 

为什么 Clickhouse 尝试使用 24.5G 内存进行简单的 SELECT 查询,我该如何解决?

【问题讨论】:

    标签: clickhouse


    【解决方案1】:

    因为许多并行线程读取所有列和 65k 行并为每列分配数 MB。

    表格有多少列?

    试试

    set max_block_size=512, max_threads=1, max_rows_to_read=512;
    SELECT * FROM my_table LIMIT 5;
    

    【讨论】:

      猜你喜欢
      • 2022-10-30
      • 1970-01-01
      • 2016-12-22
      • 2019-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多