--胡说八道-----分布式数据库, 什么是分布式数据库

2021-04-01 00:00:00 拆分 数据 数据库 分布式 横向



想开一个新的栏目,分布式数据库,但纯属属于胡说八道系列的,所以还是标记的清楚点比较好,避免有"严谨" 的同学,来投诉我胡说八道.


分布式数据库是近比较HOT的数据库种类,想问一个问题,分布式数据库到底有什么好, 我ORACLE , 大PG , MYSQL + DBLE ,不用的挺好, 再不行 REDIS  +MONGODB 来,还有解决不了的问题吗?


我们先来找找潜意识里面什么叫分布式数据库, 关系型,支持SQL, 高可用, 大数据量, HTAP, 替代大数据架构, 无限扩展,  超高并发处理能力,低延迟, 横向扩展, 横向扩展无感知, ........  估计应该还有很多没有提到的名词  CAP 原理 等等


那如果我们没有海量数据,就和分布式数据库没关系了吧?  NO NO NO , 对于某些金融机构,高可用可能会成为一个数据库的关键指标,  在不少单位虽然有非常好的硬件,但也避免不了这个数据库所在的硬件的故障,当然你可以进行切换,但切换的复杂性和成本也是一个非常重要的问题. 分布式数据库本身解决了单个故障点和跨域的数据库解决的方案.


那综合了上面那些词汇后,分布式数据库就有了清晰的概念了?  我觉得上面的特性中,应该在添加一个词汇, 简便性.



试想如果我们没有分布式数据库,我们怎么解决上面的问题


1   通过中间件的方式,+ MYSQL 的方式进行数据的横向扩展

2   通过逻辑代码+MYSQL的方式进行数据的横向扩展

3   POSTGRESQL citus  

4   MONGODB  SHARDING

5   Redis cluster 




这是我能想到的,当前我可以能使用到的横向扩展数据库的方案.


那么既然有这些方案,那还需要分布式数据库?  YES  分布式数据库提供了一个重要的特性  "简便性"


分布式数据库重要的一点是,将数据的分割从应用层,或者中间件层,拉入到数据库本身的内部,通过数据库内部的计算逻辑,将输入的数据,按照自己的方式分割到不同的物理机,在出现故障的时候,数据在整体的分布式中可以进行重组,但对于应用是无感知.  


当然可能会有人问,那内部数据的拆分会怎么做,基于我现在的知识层次能想到的,有水平拆分, 垂直拆分, 混合拆分 


当然从非数据库的从业者来看,如果有一款,可以存储"无限"数据的,并且可以放弃分库分表, 还按传统数据库的用法,并且可以快速进行数据分析的数据库,那是一个很不错的东西.  因为这样可能大数据这个行业都可能被削减和降低技术要求,终回归到数据库本身的怀抱.因为在计算的时候,大数据的并行计算,也归并到数据库内部的多线程和多物理节点数据打散的处理.


所以分布式数据库是一个好东西, 对吗?









相关文章