大致来说数据库的发展史经历了3个阶段
1.Mysql,Oracle的关系型数据库刚开始能支撑很多公司业务的发展
互联网的高速发展,数据量越来越大,单表的数据也越来越大,这时候,具体来说MySQL一张表存500w数据比较合适,存的越多,数据量越大,这时候就要拆库拆表,先按业务垂直拆,再数量大小水平拆
拆表的逻辑比较麻烦,这时候就有很多中间件出来了,Mycat,Sharding-jdbc之类的,拆表其实还有一个问题,只能按照按照一个字段分片,即sharding-key只能有一个,对业务来说非常不方便,为了方便查询要做很多多余的表
2.这是时候nosql出来了,nosql天然支持分布式,各种分表的逻辑都能在服务端屏蔽掉,当时nosql对事务支持一般,好在大多数互联网公司对事务的要求不是很高,所以最近mongodb之类的nosql在互联网公司用的还是很多的。
3.到了第3个阶段,传统金融行业的数据也越来越大,他们对事务的要求也很高,所以nosql数据库不满足他们的要求,这时候newsql出来了(分布式关系数据库),一张表可以存几百亿的数据,而且还支持事务,目前在互联网公司用的也越来越多了。
目前开源的newsql数据库在国内只有tidb,而且被越来越过的公司使用
tidb的基本特性如下:
TiDB 是 PingCAP 公司设计的开源分布式 HTAP (Hybrid Transactional and Analytical Processing) 数据库,结合了传统的 RDBMS 和 NoSQL 的最佳特性。TiDB 兼容 MySQL,支持无限的水平扩展,具备强一致性和高可用性。TiDB 的目标是为 OLTP (online Transactional Processing) 和 OLAP (online Analytical Processing) 场景提供一站式的解决方案。
TiDB 具备如下特性:
高度兼容 MySQL大多数情况下,无需修改代码即可从 MySQL 轻松迁移至 TiDB,分库分表后的 MySQL 集群亦可通过 TiDB 工具进行实时迁移。水平弹性扩展通过简单地增加新节点即可实现 TiDB 的水平扩展,按需扩展吞吐或存储,轻松应对高并发、海量数据场景分布式事务TiDB 100% 支持标准的 ACID 事务。真正金融级高可用相比于传统主从 (M-S) 复制方案,基于 Raft 的多数派选举协议可以提供金融级的 100% 数据强一致性保证,且在不丢失大多数副本的前提下,可以实现故障的自动恢复 (auto-failover),无需人工介入。一站式 HTAP 解决方案TiDB 作为典型的 OLTP 行存数据库,同时兼具强大的 OLAP 性能,配合 TiSpark,可提供一站式 HTAP 解决方案,一份存储同时处理 OLTP & OLAP,无需传统繁琐的 ETL 过程。云原生 SQL 数据库TiDB 是为云而设计的数据库,支持公有云、私有云和混合云,使部署、配置和维护变得十分简单。TiDB 的设计目标是 100% 的 OLTP 场景和 80% 的 OLAP 场景,更复杂的 OLAP 分析可以通过 TiSpark 项目来完成。
TiDB 对业务没有任何侵入性,能优雅的替换传统的数据库中间件、数据库分库分表等 Sharding 方案。同时它也让开发运维人员不用关注数据库 Scale 的细节问题,专注于业务开发,极大的提升研发的生产力。