这两用来比较可能不是一个维度的,我想你想问的是 原生的分布式数据库和中间件架构的数据库有什么区别。
首先解释下我认为的云原生数据库,这是数据库的一种部署形态。基于云环境,利用云的高可用和高扩展,通过云端的operator来管理的就叫云原生的数据库。
而原生的分布式数据库和中间件架构的分布式数据库相比,最大的区别在于有中间件这一层。也就是底层的数据节点是独立的,分布式事务需要在中间件这一层来实现。
跨节点的数据查询在中间件这一层数据汇聚太多,而不是广播到底层的数据节点(因为数据节点是独立的)计算。因此对于数据的关联查询,数据的充分布,在中间件架构的数据库上是弱项。
原生的分布式数据库在查询优化器上提供这些能力,看起来更像是一个完整的单机数据库。
其实这两种数据库都有优势。中间件数据库技术简单,支持的场景简单,便于用好。原生分布式技术复杂,支持场景全面。
收起云原生优势在于纯自研自主可控、架构上存储和计算分离、更适合与云平台深度融合,更符合未来趋势,前景明显。基于中间件架构的数据库往往是基于成熟的开源数据库加上中间件的模式,优势在于成熟的数据库内核。所以一个是更符合未来趋势(备注,未来趋势并不一定会成为未来,请不要误解),一个是当下分布式数据库发展阶段的产物,是相对直接和成熟的实现方式。
收起