1.特点
- 属于列式存储数据库(一列数据存储在一起),更适合数据统计分析(聚合、计数、求和)、数据类型一致更好存储压缩。
行式存储(mysql、oracle),适用于增删改查都有的场景(主要是顺序写) - 多样化引擎: 合并树、日志、接口、其他 4大类20多种引擎..
- LSM tree 顺序写磁盘很快 conn.4.11
- 数据分区与线程级并行todo? 吃cpu 不适合高qps
- 不适合join,实现:A join B B表会被加载到内存
2.数据类型
类型 官方文档
Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 Float32 Float64 Decimal32(s) //等价于mysql:decimal32(9,9-s) //2^31 =10位数 //mysql: decimal(m,d) m总位数 d小数位数 Decimal64(s) //等价于mysql:decimal32(18,18-s) //2^63 =19位数 Decimal128(s) //等价于mysql:decimal32(38,38-s) //2^127=37位数 Bool //本质是用Uint(8)存储 String //等价于mysql:varchar FixedString(n) //等价于mysql:char(n) Enum8 Enum16 //枚举把string和Int8 Int16绑定 Data //[1970-01-01, 2149-06-06] Data32 //[1970-01-01, 2299-12-31] DateTime //[1970-01-01 00:00:00, 2106-02-07 06:28:15] DateTime64 //[0000-01-01 00:00:00, 9999-12-31 23:59:59.999999999] Time //[-999:59:59, 999:59:59] Array(T) //对嵌套支持不好,只存1维数组 Nullable //NULL 一般用业务不会出现的值代替NULL
3.表引擎
1.集成
- 数据存储在其他app,例如mysql、kafka。clickhouse可用直接查询和插入数据
2.日志
- TinyLog
3.merge
- MergeTree
CREATE TABLE t_order_mt ( `id` UInt32, `sku_id` String, `total_amount` Decimal(16, 2), `create_time` Datetime ) ENGINE = MergeTree PARTITION BY toYYYYMMDD(create_time) PRIMARY KEY id ORDER BY (id, sku_id)
4.特殊
- Memory
文档更新时间: 2026-08-25 16:29 作者:morninglu
