如何以更优化的方式从 LowCardinality(String) 数据类型中获取所有值?
Posted
技术标签:
【中文标题】如何以更优化的方式从 LowCardinality(String) 数据类型中获取所有值?【英文标题】:how to get all values from LowCardinality(String) datatype more optimal way? 【发布时间】:2020-09-21 09:31:13 【问题描述】:我是 clickhouse 的新手,对 clickhosue 的表现感到惊讶。
有一件事困扰着我,我有一个使用 LowCardinality(String) 类型的表。
DDL 喜欢
create table test.table1(code LowCardinality(String),xxx,xxx,xxx ) engine=MergeTree xxx
我想从表中获取所有不同的值。
这是我的选择查询
select distinct code from test.table1;
但是数据量很大,大约140亿,可能需要40s才能完成,并且处理完表中的所有行,
所以我想知道是否有任何方法可以从 LowCardinality 数据类型中获取数据?
【问题讨论】:
【参考方案1】:试试这个查询:
select code /*, count() */
from test.table1
group by code
【讨论】:
它工作!我的选择查询需要 40 秒。你的只有 10 秒。谢谢以上是关于如何以更优化的方式从 LowCardinality(String) 数据类型中获取所有值?的主要内容,如果未能解决你的问题,请参考以下文章
在 ClickHouse 中使用 Array(Tuple(LowCardinality(String), Int32))