【问题标题】:How to maintain cache in ClickHouse?如何在 ClickHouse 中维护缓存?
【发布时间】:2020-03-12 19:32:40
【问题描述】:

我使用 crontab 来安排每 2 小时查询一次大表的 SQL。

select a,b,c,d,e,f,g,h,i,j,k,many_cols from big_table format Null

每次需要 5 分钟到 30 秒。

query_log可以看出,SQL时间低时MarkCacheHits值高,时间高时MarkCacheHits值低,MarkCacheMiss值为高。

  • 我想知道如何使标记缓存尽可能多地命中? (这可能不是唯一需要预热的大桌子)

  • 标记缓存会被其他查询替换吗?有什么限制?

  • 选择特定列的预热方法真的适用于这些列的聚合查询吗?比如预热SQL如上,聚合查询可以是select a,sum(if(b,c,0)) from big_table group by a

  • 我的clickhouse服务器最近偶尔挂了,从日志看不出对应时间有任何错误或异常。这可能与我对大表的常规热身查询有关吗?

【问题讨论】:

    标签: caching memory clickhouse


    【解决方案1】:

    实际上,您将数据放入 Linux 磁盘缓存中。

    标记缓存会被其他查询替换吗?它的限制是什么?

    是的,将被替换,5GB <mark_cache_size>5368709120</mark_cache_size>

    选择特定列的预热方法真的适用于这些列的聚合查询吗?

    是的,因为您将文件放入 Linux 缓存中。

    这可能与我对大表的常规热身查询有关吗?

    没有。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    相关资源
    最近更新 更多