TiDB和ClickHouse的对比分析
前言
之前项目中用到了ClickHouse,因为一些原因,组长想着把ClickHouse换成TiDB,然后这个艰巨的学习任务就落到小编身上了。
项目现状
每天项目中都有上万多条数据的插入,查询量也会不断扩大,如果后期项目范围扩大,每天将会有更大的数据量输入。所以需要找一个更为合适的数据库来支撑大数据的存储与查询。
ultraDB和TiDB的优缺点
ultraDB
优点:
- 只读取部分列时,可以减少IO
- 更好的编码和压缩(由于每列的数据类型相同)
- 更易于实现向量化执行
- 支持SQL&丰富的数据和聚合函数
缺点:
- 不支持事务。
- 不适合随机的插入,删除,更新。(多列之间存在拆分和合并的开销)
- 不能全面真正指出SQL,不支持特殊的子查询和窗口函数。
- 聚合操作取决于单台机器的 RAM。
- 资料及文档较少、运维困难。
TiDB
优点
- 优秀的横向扩展能力
- 高可用
- 强一致性
- TiDB兼容Mysql协议和绝大多数Mysql语法,在大多数情况下,用户无需修改一行代码就可以从Mysql无缝迁移到TiDB
- Cloud-Native
- 支持多数据中心
- 支持ACID事务,支持二级索引,没有Java GC的痛点(TiKV是由Rust开发,Rust可以完全手动控制内存,无GC)
- 实时和离线数据导入
- 支持聚合,明细,点更新
- 在线Schema变更
- 易运维
- Both OLAP And OLTP
- 适合快速的点插入,点更新和点删除
- 对于需要访问全部列的查询十分友好
缺点
- 无列式存储
- 无预计算手段
- 无向量化执行
小结
经过以上的对比和项目现状的分析,TiDB更为适合项目中的实际运用。