ClickHouse
面向列式存储的 OLAP 数据库,具备高压缩比、向量化执行、多索引等特点。
目录结构
| 模块 | 内容 |
|---|---|
| 部署配置 | Docker 部署、配置文件、系统日志 |
| 建表设计 | 表引擎、数据类型、TTL、模板 |
| 查询优化 | SQL 优化、架构优化 |
| 高级特性 | 物化视图、字典 |
| SQL 参考 | 完整 SQL 语法与函数 |
| 资源 | 免费资源、官方文档、 Playground |
| FAQ | 常见问题解答 |
快速导航
资源
- Playground — 在线体验
- 官方文档 — 中文文档
- resources.md — 完整资源列表
快速导航
部署
建表
优化
高级
ClickHouse vs 传统数据库
| 特性 | ClickHouse | MySQL/PostgreSQL |
|---|---|---|
| 存储方式 | 列式 | 行式 |
| 事务 | 不支持 | 支持 |
| 更新/删除 | 异步操作 | 实时 |
| JOIN | 小表放右 | 灵活 |
表引擎选择
数据特点
├── 唯一/无去重 → MergeTree
├── 需要去重
│ ├── 保留最新 → ReplacingMergeTree
│ ├── 求和聚合 → SummingMergeTree
│ └── 其他聚合 → AggregatingMergeTree
├── 增量计算 → CollapsingMergeTree
└── 小表/一次读取 → TinyLog常用系统表
sql
-- 磁盘占用
SELECT database, table, formatReadableSize(sum(bytes)) AS size
FROM system.parts WHERE active = 1 GROUP BY database, table;
-- 慢查询
SELECT query, query_duration_ms FROM system.query_log
WHERE type = 'QueryFinish' ORDER BY query_duration_ms DESC LIMIT 10;
-- 副本状态
SELECT database, table, replica_name, is_leader, absolute_delay
FROM system.replicas;