概述
TiDB是PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP)的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL 生态等重要特性。目标是为用户提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决方案。TiDB 适合高可用、强一致要求较高、数据规模较大等各种应用场景。
优点
- 高度兼容 MySQL:大多数情况下,无需修改代码即可从 MySQL 轻松迁移至 TiDB,分库分表后的 MySQL 集群亦可通过TiDB工具进行实时迁移;
- 水平弹性扩展:通过简单地增加新节点即可实现TiDB的水平扩展,按需扩展吞吐或存储,轻松应对高并发、海量数据场景;
- 分布式事务:TiDB 100% 支持标准的 ACID 事务;
- 金融级高可用 :数据采用多副本存储,数据副本通过 Multi-Raft 协议同步事务日志,多数派写入成功事务才能提交,确保数据强一致性且少数副本发生故障时不影响数据的可用性。可按需配置副本地理位置、副本数量等策略满足不同容灾级别的要求;
- 一站式HTAP解决方案:提供行存储引擎TiKV、列存储引擎TiFlash两款存储引擎,TiFlash通过Multi-Raft Learne协议实时从TiKV复制数据,确保行存储引擎 TiKV 和列存储引擎TiFlash之间的数据强一致。TiKV、TiFlash可按需部署在不同的机器,解决HTAP资源隔离的问题;
- 云原生SQL数据库 :TiDB是为云而设计的数据库,同Kubernetes深度耦合,支持公有云、私有云和混合云,使部署、配置和维护变得十分简单。
缺点:
该项目较新,还没有经过大量的生产环境检验,可能会存在一定的风险。
不适用场景:
- 单机 MySQL 能满足的场景也用不到 TiDB;
- 数据条数少于 5000w 的场景下通常用不到 TiDB,TiDB 是为大规模的数据场景 设计的;
- 如果应用数据量小(所有数据千万级别行以下),且没有高可用、强一致性或 者多数据中心复制等要求,那么就不适合使用 TiDB。