对千亿级数据进行uniq查询,如何提高查询速度?
发布于 4 个月前 作者 chenzhuo-it 664 次浏览 来自 问答

如题,是否有相关配置可以调整? 表引擎MergeTree,无副本,10台服务器(24核、300G内存、scsi磁盘),数据量1083亿,单天大概159亿 配置方面仅调整了 后台处理线程 和 group by可用的内存,其它均未调整

6 回复

关键是内存怎么设置啊? 如果内存小于数据量的大小,就玩不动了,能配置外部磁盘的参数么? 比如内存设置了40G,数据超过了40G,能否通过磁盘交换下数据呢? 我有一个单点的机器,有9亿数据,内存设置了40G,uniqExact直接报错 DB::Exception: Memory limit (for query) exceeded: would use 38.05 GiB (attempt to allocate chunk of 2147483648 bytes), maximum: 37.25 GiB

着急啊

我只看到group相关的参数可以设置 max_bytes_before_external_group_by 这个是外部磁盘使用相关的。

最大内存300G,磁盘交换阈值150G(就是max_bytes_before_external_group_by),目前看应该是cpu不够用,240核全都打满了

uniq是不精确的,这个没问题吧?另外我了解的是uniq和group by的内存设置没有关系。

有没有解决的办法?

你的sql是怎么写的?贴来看看

回到顶部