---
title: ClickHouse 性能优化(MergeTree、分区与索引、TTL 与聚合)
keywords:
- ClickHouse
- MergeTree
- 分区
- 索引
- TTL
description: 基于 MergeTree 家族的存储引擎,优化分区与主键、索引与 TTL,提升分析查询性能并提供可验证方法。
date: 2025-11-26
tags:
- ClickHouse
- MergeTree
- TTL
- 分区
- 分析型
- 性能优化
- 数据库
- 索引
categories:
- 文章资讯
- 编程技术
---
ClickHouse 性能优化(MergeTree、分区与索引、TTL 与聚合)
关键实践与参数
- 分区键:按时间或业务维度分区,提升裁剪与维护效率。
- 主键与排序键:决定数据组织与跳过索引;提高范围查询性能。
- 索引:
data skipping indices(minmax、set、bloom)减少扫描。 - TTL:对历史数据自动归档或删除,控制存储成本。
示例
CREATE TABLE events (
ts DateTime,
user_id UInt64,
action String
) ENGINE = MergeTree
PARTITION BY toYYYYMM(ts)
ORDER BY (ts, user_id)
SETTINGS index_granularity = 8192;
验证方法
EXPLAIN与system.query_log观察读取行数与裁剪效果。- 比较启用跳过索引前后耗时与扫描比例。
- TTL 生效与分区数据归档比例统计。
注意事项
- 过细分区导致元数据膨胀;控制粒度并合并。
- 跳过索引并非总是收益;按数据分布选择类型。
- 写入批量与压缩策略影响吞吐与查询表现。

发表评论 取消回复