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