mpp数据库和mysql数据库的语法区别_有人能说清分库分表、MPP和分布式数据库的区别吗?...

mlnb
mpp数据库和mysql数据库的语法区别_有⼈能说清分库分表、MPP和分布式数据库的区别吗?...
测试机器人⼀家之⾔,做过相关的⼯作。
1)分库分表做法,主要是因为早期单机数据库(主要还是MySQL这种低成本场景)下⽆法在⼀个库⼀张表来承载同⼀业务表下所有的数据,因⽽将数据划分到不同的物理库表中去,从业务视⾓来形成⼀个⼤的逻辑表。这样的话能够充分利⽤⽔平拆分能⼒,来存储超⼤的数据集。⼀般拆分逻辑依赖业务给出相关的字段,配合分表规则,来做hash、range的拆分。这种⽅式⼀般通过⼀些富客户端来⽀持⽤户sql,好处很直观,针对点查询效率很⾼,插⼊数据效率⾼,但问题点很多,也不太好解决,主要在于涉及到不同分库的sql操作,⽐如怎么⽀持跨库表join,怎么⽀持分布式事务来更新,如果sql中不带分区键导致全逻辑表查询等等。另外,数据量越来越⼤时有热点问题怎么办,数据怎么重分布,宕机怎么恢复,路由表变更怎么办,怎么做多个实例的服务发现,怎么做读写分离,等等。最终就是让业务上做妥协,最终⼀致性,不⽀持join,允许局部节点故障,等等。连体滑雪服
2)本质上,分库分表中间件相当于把数据库解决不了的问题推到业务侧,让业务参与解决或者妥协。随着云计算平台分布式数据库越来越强⼤,分库分表的技术会慢慢的退出历史舞台。简单来说,分布式数据库把上⾯的问题尽量的在数据系统内部解决掉,给客户的接⼝⾮常简单,统⼀的endpoint,标准的数据库协议,完整的sql⽀持能⼒,等等,但内部⼀样有各种数据分区逻辑。分布式数据库从⼴义上来说,
包装密封性测试
就是实现数据库语义的分布式架构下的系统,像云上各种OLTP和OLAP产品,应该都可以称之为分布式数据库。分布式数据库中最重要的就是数据怎么摆放,数据在多个机器上平均分摊持有⼀份数据做sharding,还是多个节点相互复制⼀份数据做主备,还是利⽤底层共享存储共享⼀份完整数据集,衍⽣出不⼀样的系统架构和能⼒。
3)mpp数据库主要区别于smp数据库。后者⼀般是单机架构,⽽单机能⼒毕竟有限,在OLAP计算数据量⾮常⼤的时候,单机数据库的分析能⼒⾮常有限。mpp数据库构建⼀套分布式计算集(mpp数据库肯定是分布式系统,但狭义上应该不算那些只考虑数据切⽚的分布式数据库),增强计算能⼒,在计算中再针对数据集做切⽚调度执⾏等,最终希望能实现计算⼒的⽔平扩展。
排水帽
废话较多,总结⼀下。这些概念本⾝不是完全⽆关的,相互有关系。我接触过的发展过程:
单机数据库,到主备分布式数据库(解决⾼可⽤和数据⾼可靠),到分库分表(sharding解决横向扩展)+主备分布式数据库(解决部分数据的可⽤和数据可靠性,全局数据⽆强⼀致保障),再到主备+内部⾃动分区和复杂分布式计算的分布式数据库(数据,语义,能⼒,免运维都很强),再到数据层共享存储、计算层横向弹性扩缩容的分布式数据库架构(能⼒越来越强,成本、弹性、故障恢复速度、灾备等),等等。
⽆论上单机还是分布式数据库,针对单个sql,最终只会在⼀个节点上执⾏完成,⽽mpp数据库会对这
个sql执⾏计算任务分解,靠整个集的算⼒分布式调度计算,最后整体完成sql。这个可能是与分布式数据库的差异。但分布式数据库与mpp数据库不是⼀个差异化很⼤的概念,技术实现上也会有很多重叠的。
siv 011

本文发布于:2024-09-20 12:37:42,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/106263.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据库   分布式   数据   计算   业务
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议