AIGC标识 3.8 分布式数据库

分布式数据库核心知识点详解

一、分布式数据库

定义

局部数据库位于不同的物理位置,使用一个全局的DBMS将所有局部数据库联网管理,这就是分布式数据库。

通俗理解

想象你是一家连锁超市的总部,全国有100家门店。每家门店都有自己的收银系统(局部数据库),但总部需要一个统一的系统来查看所有门店的销售数据、库存情况。这个"统一管理系统"就相当于全局DBMS,而整个连锁体系就是分布式数据库。

核心特点

  • 物理分布:数据存储在多个不同的地理位置
  • 逻辑统一:对用户来说,看起来就像一个完整的数据库
  • 联网管理:通过计算机网络将各局部数据库连接起来

二、分片模式

分片(Sharding)是分布式数据库中数据划分的核心策略,分为水平分片和垂直分片两种方式。

1. 水平分片

定义:将表中水平的记录(行)分别存放在不同的地方。

通俗样例:

假设你有一个"学生表",里面有1000条学生记录。水平分片就是把这1000条记录按某种规则切开:

分片节点 存放的学生记录
节点A 学号 001~500 的学生
节点B 学号 501~1000 的学生

就像把一叠文件按序号从中间劈开,一半放左边抽屉,一半放右边抽屉。查询时系统会自动知道"学号300的学生在节点A"。

2. 垂直分片

定义:将表中垂直的列值分别存放在不同的地方。

通俗样例:

还是那个"学生表",假设表结构如下:

学号 姓名 性别 年龄 家庭住址 电话号码 紧急联系人

垂直分片会把不同的列拆分到不同节点:

分片节点 存放的列
节点A 学号、姓名、性别、年龄(基本信息)
节点B 家庭住址、电话号码、紧急联系人(隐私信息)

就像公司的组织架构:人事部管员工的基本档案,行政部管员工的住址和电话。虽然数据被拆开了,但通过学号仍能关联到同一个人。

水平分片 vs 垂直分片 对比

对比维度 水平分片 垂直分片
拆分方向 按行拆分 按列拆分
每张分片表结构 与原表相同 原表列的子集
数据冗余 无冗余 通常需保留主键用于关联
适用场景 数据量大、查询均匀分布 列数据量差异大、访问模式不同

三、分布式透明性

分布式透明性是指:对用户和应用程序而言,分布式数据库的复杂性对外部是"透明"的——你不需要知道底层是怎么运作的,就像用手机不需要知道基站是怎么工作的。

1. 分片透明性

定义:用户或应用程序不需要知道逻辑上访问的表具体是如何分块存储的。

通俗样例:

你在电商平台搜索"手机",系统返回了100个商品结果。你不需要关心这些商品数据存在哪个服务器上、是怎么切分的。你只需要输入关键词,系统自动帮你找到数据并返回结果。这就是分片透明性在起作用——你只管"查什么",系统负责"去哪查"。

2. 位置透明性

定义:应用程序不关心数据存储物理位置的改变。

通俗样例:

你用手机APP登录微信,APP只需要知道"连接微信服务器",不需要知道服务器具体在北京、上海还是深圳的机房里。即使运营商把数据中心从北京迁移到了上海,你的APP也不需要做任何修改就能继续正常使用。就像你打电话给朋友,不需要知道他换到新手机号后住在哪个区。

3. 逻辑透明性

定义:用户或应用程序无需知道局部使用的是哪种数据模型。

通俗样例:

一个大型集团总部使用的分布式数据库,总部用的是关系型数据库(表格形式),而某个分公司因为业务特殊用的是文档型数据库(类似JSON格式)。但总部下发的统一查询接口对分公司来说是无感的——分公司的人照样用同样的方式查询数据,不需要知道底层用的是表格还是文档。就像你打电话给不同国家的朋友,不管他们用iPhone还是Android,通话功能不受影响。

4. 复制透明性

定义:用户或应用程序不关心复制的数据从何而来。

通俗样例:

你访问百度首页,请求可能被分发到全国多个数据中心中的任意一个来响应。你不需要知道你的请求打到了北京机房还是广州机房的服务器上,也不需要知道这个页面是从主数据库复制过来的还是从缓存里取的。你只需要知道"打开百度就能搜到东西",至于数据从哪个副本提供服务,对用户完全透明。


四、知识点总结

知识点 核心要点
分布式数据库 多地局部数据库 + 全局DBMS统一管理
水平分片 按行拆分数据,各节点存不同记录
垂直分片 按列拆分数据,各节点存不同字段
分片透明性 不用关心数据怎么分块存储
位置透明性 不用关心数据存在哪个物理位置
逻辑透明性 不用关心局部用什么数据模型
复制透明性 不用关心数据从哪个副本提供

五、一句话记忆法

  • 分布式数据库 = 多地存储 + 统一视图
  • 水平分片 = 把表"横着切"(按行)
  • 垂直分片 = 把表"竖着切"(按列)
  • 四种透明性 = 用户不用管:怎么分的、存在哪、用什么模型、从哪来的
posted @ 2026-10-28 16:53  渡solong~  阅读(3)  评论(0)    收藏  举报