【发布时间】:2021-09-21 13:56:43
【问题描述】:
我对何时使用二级索引有点困惑。我有以下代码脚本来定义一个 MergeTree 表,该表有十亿行。
create table t_mt(
id UInt8,
name String,
job String,
birthday Date,
salary UINT8
) engine = MergeTable
primary key id
order by (id)
我会实时运行以下聚合查询:
select job, count(1), avg(salary)
from t_mt
group by job
where salary > 20000
在上面的查询中,我使用了条件过滤器:salary > 20000 和 group by job。我会问在salary 列上定义二级索引是否是一个好习惯。
我在这里要问的基本问题是我是否可以将 Clickhouse 二级索引视为 MySQL 普通索引。也就是说,如果我想按某个列进行过滤,那么我可以在该列上创建(二级)索引以加快查询速度。
【问题讨论】:
标签: clickhouse