理想型的数据库应该具备的特点
- 强一致性和高可用;
- 高吞吐、高并发、低延迟;
- 标准SQL、支持 ACID 事务;
- 大数据生态友好;
- 有水平扩张能力,并且尽量做到不侵入业务;
数据库架构选型
TiDB与MySQL对比
TiDB 和 MySQL 兼容策略
可参考:https://docs.pingcap.com/zh/tidb/stable/mysql-compatibility
截至 4.0 版本,TiDB 与 MySQL 的区别总结:
对于海量数据及大表的解决方案
- MySQL需要分库分表,业务研发和 DBA 一起配合且略显低效地解决此问题;
- TiDB单表几乎可以理解为无限大的(业界已经存在 100 亿以上的表)。
数据库集群高可用
- MySQL需手动调研部署高可用集群,且不同高可用方案有不同的维护方式;
- TiDB自带高可用架构,自动容灾。
MySQL分库分表 VS TiDB
总结
TiDB 设计的目标就是针对 MySQL 单台容量限制而被迫做的分库分表的场景,或者需要强一致性和完整分布式事务的场景。TiDB的优势是通过尽量下推到存储节点进行并行计算。对于小表(比如千万级以下),不适合 TiDB,因为数据量少,Region 有限,发挥不了并行的优势。