发展历程
1)单机数据库
最常用的SQL数据库MySQL,计算和存储都在一个节点上,受到单机存储容量的限制,难以存储海量数据
2)分库分表+数据库代理中间件
单机数据库难以存储,所以出现了分库分表,根据hash或者range等分区算法把数据存储在不同节点上,但是分库分表会出现各种问题,难以动态扩缩容,原生sql受限,dml操作困难
3)分布式存储–NoSQL
不使用SQL读写数据,比如MongoDB文档数据库,HBase&Cassandra表格存储。牺牲SQL,没有事务保证
4)分布式数据库
在NoSQL的基础上支持SQL和事务,比如有TiDB,底层基于分布式kv存储引擎–TiKV来实现SQL,存储与计算分离,也支持事务。也称为NewSQL
5)企业级分布式数据库
上面4的数据库的存储是分布式kv,计算是SQL,事务,没有严格意义上存储与计算分离。借鉴Amazon Aurora数据库思想,出现了像OceanBase一类的分布式SQL数据库