通过上文我们可以知道,NewSQL的优势在于SQL的支持能力、扩展性、实时性和事务的处理能力。在NewSQL蓬勃发展的前提下,许多新兴技术公司开始打造自己的新一代分布式数据库,其设计理念:
一、分布式架构
通过主节点下发任务的模式,每个节点都可以提供服务,在扩展性上,Master不会是瓶颈。

1、客户端通过不同的接口访问形式,直接访问主服务节点服务
2、主服务节点收到服务请求进行分析处理,分配到不同的分配服务节点执行
3、分片服务节点收到执行请求,进行sql解析处理并执行SQL计划
4、SQL执行服务底层存储数据进行处理访问,并反回处理结果
5、通过Raft协议确保服务之间数据同步
6、存储根据AP、TP分为共享存储和非共享存储
而与之相比较,PostgreSQL现在的分布式都是MPP的架构,share nothing,存在增加、减少节点数据重新分配的问题。
二、从分库分表走向Sharding与Partition(分片与分区)
通过我们前面对PostgreSQL的解读,数据分库分表是一种被迫的选择,无奈之举,如果能够不做分库分表,就尽量不要做这方面的设计,因为会对业务提出要求,或者改动业务。所以,我们在NewSQL的设计上,要多做Sharding与Partition(分片与分区)的设计。
数据分区
分区就是把一张表的数据分成N个区块,在逻辑上看最终只是一张表,但底层是由N个物理区块组成的。
什么时候考虑使用分区呢?当一张表的查询速度已经慢到影响使用的时候,数据量大,sql经过优化,表中的数据是分段的,或者对数据的操作往往只涉及一部分数据,而不是所有的数据

最低0.47元/天 解锁文章
94

被折叠的 条评论
为什么被折叠?



