如何设计好分布式数据库,这个策略很重要

本文介绍了GaussDB(for openGauss)的分布式架构和数据分布策略的重要性。通过电子商城的场景分析,阐述了数据库逻辑模型、功能设计和物理数据模型的设计步骤。讨论了数据分布策略,包括分布键的选择、避免数据广播和数据倾斜的问题,强调了分布键的离散性和选择连接条件的重要性。理解这些内容有助于设计出高效的分布式数据库策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要:GaussDB(for openGauss)是分布式架构,数据分布在各个DN上,设计好的数据分布策略是分布式数据库设计中最关键的环节。

‘数据库是应用和计算机的核心组成,试想,如果没有数据库,就像人的大脑没有了记忆一样,信息也得不到共享,那么,对开发者来说,如何设计一款高效易用的数据库至关重要。

GaussDB(for openGauss)是企业级分布式数据库,具备分布式强一致、有效降低容灾成本、支持PB级海量数据、智能诊断等优点,是当下炙手可热的主流数据库,那么如何更好的设计分布式数据库的数据分布策略呢?首先介绍一下GaussDB(for openGauss)的基本架构,便于理解后面的分析。

在这里插入图片描述
图 逻辑架构

这个是一个典型的基于数据分片的分布式架构(share nothing),底层数据通过一定的规则比如hash、list或者range等让数据打散分布到不同的数据节点上,计算时底层多个节点共同参与计算。同时数据节点可以扩展,上层由协调节点进行SQL解析和转发。

从图中可以看到,主要包括三类节点:协调节点、数据节点、集群类节点(最重要的是全局事务管理器)。协调节点负责SQL解析转发,充当的是类似proxy的角色,数据节点负责计算和数据存储,全局事务管理器负责全局事务读一致性的保证。
在这里插入图片描述
表 关键角色

分布式SQL执行过程

在这里插入图片描述
大致执行过程:

业务应用下发SQL给Coordinator ,SQL可以包含对数据的CRUD操作;
Coordinator利用数据库的优化器生成执行计划,每个DN会按照执行计划的要求去处理数据;
数据基于一致性Hash算法分布在每个DN,因此DN在处理数据的过程中,可能需要从其他DN获取数据,GaussDB提供三种stream流(广播流、聚合流和重分布流)实现数据在DN间的流动;
DN将结果集返回给Coordinate进行汇总;
Coordinator将汇总后的结果返回给业务应用。

数据分布策略场景实践

拿电子商城来举例,一个完整的商城会包括很多信息,例如用户、产品、订单、仓库、物流、支付等等很多信息。以下用订单、支付方式、快递公司这3个信息为例,这3个信息也只列出少量关键属性来举例。

step1、数据库逻辑模型设计

在这里插入图片描述

step2、功能设计

常用场景一、查看子订单列表

Select sn, status, money
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值