1.特点
  1. 属于列式存储数据库(一列数据存储在一起),更适合数据统计分析(聚合、计数、求和)、数据类型一致更好存储压缩。
    行式存储(mysql、oracle),适用于增删改查都有的场景(主要是顺序写)
  2. 多样化引擎: 合并树、日志、接口、其他 4大类20多种引擎..
  3. LSM tree 顺序写磁盘很快 conn.4.11
  4. 数据分区与线程级并行todo? 吃cpu 不适合高qps
  5. 不适合join,实现:A join B B表会被加载到内存
2.数据类型
  1. 类型 官方文档

    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.集成
  1. 数据存储在其他app,例如mysql、kafka。clickhouse可用直接查询和插入数据
2.日志
  1. TinyLog
3.merge
  1. 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.特殊
  1. Memory
文档更新时间: 2026-08-25 16:29   作者:morninglu