首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
开篇词|为什么要学习分布式数据库?
01|什么是分布式数据库?
02|强一致性:那么多数据一致性模型,究竟有啥不一样?
03|强一致性:别再用BASE做借口,来看看什么是真正的事务一致性
04 | 架构风格:NewSQL和PGXC到底有啥不一样?
05 | 全局时钟:物理时钟和逻辑时钟你Pick谁?
06 | 分片机制:为什么说Range是更好的分片策略?
07 | 数据复制:为什么有时候Paxos不是最佳选择?
08 | 基础篇大串讲:重难点回顾+思考题答疑+知识全景图
09|原子性:2PC还是原子性协议的王者吗?
10 | 原子性:如何打破事务高延迟的魔咒?
11|隔离性:读写冲突时,快照是最好的办法吗?
12 | 隔离性:看不见的读写冲突,要怎么处理?
13 | 隔离性:为什么使用乐观协议的分布式数据库越来越少?
14 | 隔离性:实现悲观协议,除了锁还有别的办法吗?
15 | 分布式事务串讲:重难点回顾+思考题答疑+知识全景图
16 | 为什么不建议你使用存储过程?
17 | 为什么不建议你使用自增主键?
18 | HTAP是不是赢者通吃的游戏?
19 | 查询性能优化:计算与存储分离架构下有哪些优化思路?
20 | 关联查询:如何提升多表Join能力?
21 | 查询执行引擎:如何让聚合计算加速?
22|RUM猜想:想要读写快还是存储省?又是三选二
23 | 数据库查询串讲:重难点回顾+思考题答疑+知识全景图
24 | 全球化部署:如何打造近在咫尺且永不宕机的数据库?
25 | 容灾与备份:如何设计逃生通道保证业务连续性?
26 | 容器化:分布式数据库要不要上云,你想好了吗?
27 | 产品测试:除了性能跑分,还能测个啥?
28 | 选型案例:银行是怎么选择分布式数据库的?
29 | 产品图鉴:哪些分布式数据库值得看?
30 | 实践篇大串讲:重难点回顾+思考题答疑+知识全景图
当前位置:
首页>>
技术小册>>
分布式数据库入门指南
小册名称:分布式数据库入门指南
### 04 | 架构风格:NewSQL与PGXC的差异解析 在分布式数据库的广阔领域中,NewSQL与基于PostgreSQL的扩展集群(如PostgreSQL XC,简称PGXC)代表了两种截然不同的设计哲学和技术实现路径,它们各自针对传统关系型数据库(RDBMS)在扩展性、性能和一致性方面的局限性提出了创新性的解决方案。本章将深入探讨NewSQL与PGXC的架构风格、核心特性、应用场景及它们之间的显著差异。 #### 一、引言 随着大数据时代的到来,单一节点的数据库系统已难以满足海量数据存储与高速访问的需求。因此,分布式数据库系统应运而生,旨在通过水平扩展来克服这些挑战。NewSQL和PGXC作为分布式数据库领域的两大分支,各自拥有独特的优势和适用场景。 #### 二、NewSQL概述 **2.1 定义与起源** NewSQL是一个较为宽泛的术语,用于描述一类旨在结合NoSQL的扩展性与传统关系数据库ACID(原子性、一致性、隔离性、持久性)特性的新型数据库系统。它的出现,是对传统关系型数据库在分布式环境下性能瓶颈的直接回应。 **2.2 核心特性** - **可扩展性**:NewSQL数据库设计之初就考虑了水平扩展能力,能够轻松增加节点以提升处理能力。 - **强一致性**:维持传统RDBMS的强一致性保证,即使在分布式环境下也能确保数据的一致性和完整性。 - **SQL兼容性**:提供完整的SQL支持,使得开发人员和DBA(数据库管理员)能够无缝迁移和应用现有的数据库知识和技能。 - **高性能**:通过优化分布式事务处理、内存计算、列式存储等技术手段,实现高性能的数据处理能力。 **2.3 典型代表** - Google Spanner:结合了全球分布式锁服务和时间戳机制,提供跨数据中心的一致性和可扩展性。 - CockroachDB:基于Raft共识算法,实现高度一致性和容错性的分布式SQL数据库。 - TiDB:由PingCAP开发,支持水平扩展的分布式NewSQL数据库,兼容MySQL协议。 #### 三、PGXC详解 **3.1 定义与背景** PGXC是PostgreSQL的一个扩展项目,旨在通过多节点集群的方式提升PostgreSQL的扩展性和性能。它允许数据在多个节点间分布存储和并行处理,是PostgreSQL在分布式计算领域的重要尝试。 **3.2 架构特点** - **多节点架构**:PGXC通常由多个节点组成,包括一个协调节点(Coordinator)和多个数据节点(DataNode)。协调节点负责查询解析、优化和分发,数据节点则负责实际的数据存储和计算。 - **数据分片**:数据可以根据一定规则(如哈希、范围)被分片并分布到不同的数据节点上,以实现水平扩展。 - **查询优化与分发**:协调节点负责将复杂的SQL查询分解为多个子查询,并在数据节点间并行执行,最后合并结果。 **3.3 挑战与限制** - **复杂性**:PGXC的部署、配置和维护相比单节点PostgreSQL更为复杂,需要深入了解其分布式架构。 - **一致性模型**:虽然PGXC支持事务处理,但在分布式环境下保持强一致性可能面临挑战,特别是在网络分区等异常情况下。 - **社区支持**:相较于PostgreSQL本身,PGXC的社区支持和生态系统可能较为有限。 #### 四、NewSQL与PGXC的差异比较 **4.1 设计理念** - **NewSQL**:从头开始设计,旨在从根本上解决传统RDBMS在分布式环境下的不足,强调高性能、可扩展性和强一致性。 - **PGXC**:作为PostgreSQL的扩展,旨在利用现有PostgreSQL的强大功能和社区支持,通过添加分布式功能来提升其扩展性和性能。 **4.2 架构与实现** - **NewSQL**:通常采用更为现代的分布式架构,如基于共识算法(如Raft、Paxos)的复制模型,以实现高可用性和一致性。 - **PGXC**:基于PostgreSQL的架构进行扩展,保留了许多PostgreSQL的传统特性,如MVCC(多版本并发控制)、触发器、索引等,但分布式特性相对较为保守。 **4.3 性能与扩展性** - **NewSQL**:通过优化分布式事务处理、内存计算等技术,通常能在更广泛的场景下实现更高的性能和更好的扩展性。 - **PGXC**:性能提升依赖于节点数量的增加和查询的并行处理能力,但在某些复杂查询和极端负载下可能面临性能瓶颈。 **4.4 一致性与容错** - **NewSQL**:通常提供更高级别的一致性保证,如线性一致性或序列一致性,并具备强大的容错机制。 - **PGXC**:依赖于PostgreSQL的事务处理机制,虽然也支持事务和回滚,但在分布式环境下的一致性和容错能力可能受到一定限制。 **4.5 社区与生态** - **NewSQL**:作为新兴技术,部分NewSQL项目(如CockroachDB、TiDB)已经吸引了大量用户和贡献者,形成了较为活跃的社区和生态系统。 - **PGXC**:虽然依托于PostgreSQL强大的社区支持,但PGXC本身的社区活动和生态发展可能相对较慢。 #### 五、应用场景选择 - **NewSQL**:适用于对性能、可扩展性和一致性要求极高的场景,如金融交易系统、实时数据分析等。 - **PGXC**:适合需要在保持PostgreSQL特性的基础上实现一定程度扩展性的场景,如企业应用、数据仓库等。 #### 六、结论 NewSQL与PGXC作为分布式数据库领域的两大分支,各自拥有独特的优势和适用场景。NewSQL以其高性能、可扩展性和强一致性在需要极致性能保证的场景中脱颖而出;而PGXC则凭借PostgreSQL的深厚基础和社区支持,在保持传统RDBMS特性的同时实现了分布式能力的增强。在选择时,应根据具体的应用需求、技术栈和团队经验进行综合考量。
上一篇:
03|强一致性:别再用BASE做借口,来看看什么是真正的事务一致性
下一篇:
05 | 全局时钟:物理时钟和逻辑时钟你Pick谁?
该分类下的相关小册推荐:
部署kubernetes集群实战
etcd基础入门与实战
人人都会用的宝塔Linux面板
大规模数据处理实战
云计算那些事儿:从IaaS到PaaS进阶(一)
架构师成长之路
从 0 开始学架构
云计算Linux基础训练营(下)
虚拟化之KVM实战
Linux云计算网站集群之nginx核心
Web安全攻防实战(下)
RPC实战与核心原理