TiDB和ClickHouse的对比分析

前言

之前项目中用到了ClickHouse,因为一些原因,组长想着把ClickHouse换成TiDB,然后这个艰巨的学习任务就落到小编身上了。

项目现状

每天项目中都有上万多条数据的插入,查询量也会不断扩大,如果后期项目范围扩大,每天将会有更大的数据量输入。所以需要找一个更为合适的数据库来支撑大数据的存储与查询。

ultraDB和TiDB的优缺点

ultraDB

优点:

  1. 只读取部分列时,可以减少IO
  2. 更好的编码和压缩(由于每列的数据类型相同)
  3. 更易于实现向量化执行
  4. 支持SQL&丰富的数据和聚合函数

缺点:

  1. 不支持事务。
  2. 不适合随机的插入,删除,更新。(多列之间存在拆分和合并的开销)
  3. 不能全面真正指出SQL,不支持特殊的子查询和窗口函数。
  4. 聚合操作取决于单台机器的 RAM。
  5. 资料及文档较少、运维困难。

TiDB

优点

  1. 优秀的横向扩展能力
  2. 高可用
  3. 强一致性
  4. TiDB兼容Mysql协议和绝大多数Mysql语法,在大多数情况下,用户无需修改一行代码就可以从Mysql无缝迁移到TiDB
  5. Cloud-Native
  6. 支持多数据中心
  7. 支持ACID事务,支持二级索引,没有Java GC的痛点(TiKV是由Rust开发,Rust可以完全手动控制内存,无GC)
  8. 实时和离线数据导入
  9. 支持聚合,明细,点更新
  10. 在线Schema变更
  11. 易运维
  12. Both OLAP And OLTP
  13. 适合快速的点插入,点更新和点删除
  14. 对于需要访问全部列的查询十分友好

缺点

  1. 无列式存储
  2. 无预计算手段
  3. 无向量化执行

小结

经过以上的对比和项目现状的分析,TiDB更为适合项目中的实际运用。

你可能感兴趣的:(数据库)