TiDB VS MySQL 写入性能
数据量在百万级以下 MySQL 写入性能优于 TiDB,在数据量达到千万级以上 MySQL 写入性能更差,因为 MySQL 数据量大时无法打散均匀分布到其它服务器,导致 B+ 树高度过高进而影响写入性能。TiDB 数据量大时会均匀将数据分散在多台 TiKV 服务器,写入性能不会随着数据量增长而下降。读取性能类似
TiDB VS MySQL 复杂 SQL 处理能力
TiDB 复杂 SQL 处理能力显著优于 MySQL ,如下图所示两张千万级别表关联 MySQL 耗时 20 秒,使用 TiDB + TiKV 处理耗时5.57 秒,大部分过滤计算可以下推到 TiKV 充分利用分布式能力。使用 TiDB + TiFlash 处理耗时 0.5 秒,TiFlash MPP Join 进一步提升数据和计算亲和性,减少数据网络传输并利用列存优势只读取需要的列,减少 IO 和 CPU 消耗
某客户业务适配 TiDB 过程中验证 SQL 耗时,统计结果显示 MySQL 超过1秒的 SQL 在 TiDB 运行速度显著提升。
TiDB VS MySQL 扩容能力
MySQL 智能一主多从,主节点无法横向扩展(除非接受分库分表),从节点扩容需要应用支持读写分离,并且单条 SQL 处理能力无法扩展。 TiDB 的存储和计算节点都可以扩容,数据规模支持 PB 级别,复杂 SQL 可以利用分布式计算能力加速。
TiDB VS MySQL 高可用能力
MySQL 使用增强半同步和 MGR 方案复制效率低,主节点故障影响业务处理,大事务影响从库数据时效性。TiDB 将数据打散分布,并通过 Raft 实现数据一致性和复制,单机故障对集群影响小并可以保证一致性
TiDB VS MySQL 在线 DDL 能力
TiDB Online DDL 能力更强,业务发布 DDL 时不锁表支持 DML 并行操作。并且 TiDB DDL 可以分布式处理,大表 DDL 效率显著优于 MySQL 并且对主从副本无延迟影响。
TiDB VS MySQL 资源管控能力
TiDB 支持资源管控,部分业务可以按照 RU 大小控制资源总量,配合 BURSTABLE 和优先级有效实现资源错峰借用提升硬件利用率。借助 TiDB 弹性扩缩容能力可以完成统一资源池建设,实现多业务融合。并利用 HTAP 能力完成多业务融合数据分析。
TiDB VS MySQL 总结和场景说明
总结优势如下:
- 数据量大的场景点查点写才会有优势
- MySQL 中耗时1秒以上的复杂 SQL TiDB 分布式 HTAP 优势明显
- TiDB 高可用能力更强
- TiDB 扩展能力更强
- TiDB 在线 DDL 能力更强
- TiDB 多业务融合能力更强
- 数据量少的点查点写的简单场景 TiDB 完全可以支持,但是 MySQL 性价比更高
总结 TiDB 合适场景:
- 数据量大
- 复杂 SQL 较多
- TP 和 AP 都包含
- 多业务融合场景
- TiDB 在简单点查点写且数据量小的场景由于没有利用分布式优势但是却包含了分布式性能开销因此性价比不高