中间件速查手册
数据仓库与 OLAPClickHouse Partition

分区 是什么?

按时间等维度切目录,查询时先裁剪掉无关分区

类比:按月分文件夹存账单

分区是第一层裁剪

分区键常见是 `toYYYYMM(event_date)` 或 `toDate(event_date)`。查询带时间范围时,ClickHouse 直接跳过其他分区目录,连索引都不用读。

分区不能太细

官方建议单表分区数控制在 100~1000 之间。按天分区存三年就是 1000 多个,已经偏多;按小时分区基本是灾难,会拖慢启动和合并。

分区太多还会让 `system.parts` 膨胀,元数据操作变慢。

分区也是删除单位

`ALTER TABLE ... DROP PARTITION` 是秒级操作,直接删目录,比 `DELETE WHERE` 高效得多。所以冷数据清理一律按分区删,这也是按时间分区的另一个理由。

它出现在这些中间件里

相关概念