前言
之前项目中用到了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)
- 实时和离线数据导入
- 支持聚合,明细,点更新</