当前位置: 首页 > article >正文

数据库(一):分布式数据库

定义

分布式数据库(Distributed Database) 是指:

数据分布在多个物理位置,但对用户透明,表现为一个统一逻辑数据库的系统。

结构模式(三层模式扩展)

层次作用对应实体
用户层提供统一视图,屏蔽底层节点分布前端应用、中间件
全局模式系统级逻辑结构定义,数据如何分布与复制分布式数据库中间件,如TiDB、OceanBase
局部模式各个子系统或节点的具体逻辑结构定义每个节点的局部数据库
物理模式各节点的实际数据文件和存储方式存储引擎(如RocksDB、InnoDB)

核心技术与模式分类

数据分片(Sharding)

定义:将数据按某种规则划分到不同节点上。

  • 水平分片(Horizontal Partitioning)
    • 按行划分,例如按用户ID区间划分;
    • 常见于用户量大时。
  • 垂直分片(Vertical Partitioning)
    • 按列划分,例如将用户表的基本信息和敏感信息分开放;
    • 常见于字段多、模块职责分离时。
  • 混合分片(Hybrid Partitioning)
    • 同时按行列进行分片。

常考点:“将用户表按地区分布于不同节点,这是哪种分片?” 答:水平分片

数据复制(Replication)

定义:将同一份数据拷贝存储于多个节点。

  • 主从复制(Master-Slave)
    • 一个主节点写,多从节点读;
    • 优点:读性能高;
    • 缺点:写入瓶颈、主节点故障影响大。
  • 多主复制(Multi-Master)
    • 多个节点可以同时读写;
    • 优点:高可用;
    • 缺点:一致性难以维护。
  • 同步复制 / 异步复制
    • 同步:强一致性,牺牲写性能;
    • 异步:高性能,但存在数据丢失风险。

一致性模型(Consistency Models)

  • 强一致性(Strong Consistency)
    • 所有节点读取到的都是最新数据;
    • 通常需要 Paxos、Raft 等共识协议支持。
  • 最终一致性(Eventual Consistency)
    • 系统经过一段时间后达到一致;
    • 常见于高可用系统(如 DNS、Cassandra)。
  • 因果一致性(Causal Consistency)
    • 保证操作的因果关系顺序;
    • 强于最终一致性,弱于强一致性。

CAP 理论(重点)

元素含义
C一致性(Consistency)
A可用性(Availability)
P分区容忍性(Partition Tolerance)

CAP 不可同时满足三者,只能同时满足其中两项:

  • CP:一致性 + 分区容忍(如 HBase)
  • AP:可用性 + 分区容忍(如 Cassandra)
  • CA:理论上只能用于单机数据库

典型架构模式

模式类型描述示例系统
同构集中式所有节点结构相同、集中部署MySQL 主从集群
同构分布式节点结构相同,分布在不同位置OceanBase、TiDB
异构分布式各节点可能使用不同数据库系统中间件统一封装不同数据库
混合云分布式云 + 本地的混合数据库部署模式云数据库 + 本地缓存

查询处理与优化机制

  • 全局查询优化器:分析跨节点的SQL执行计划;
  • 数据定位服务:确定某个数据在哪个分片或节点;
  • 两阶段提交(2PC)/三阶段提交(3PC):保障分布式事务一致性;
  • 分布式事务协调器(如 XA / TCC / SAGA);
http://www.lryc.cn/news/2380399.html

相关文章:

  • Java并发编程-线程池(三)
  • 《黑马前端ajax+node.js+webpack+git教程》(笔记)——node.js教程+webpack教程(nodejs教程)
  • Flink 快速入门
  • 高效管理多后端服务:Nginx 配置与实践指南
  • 阻塞队列:线程安全与生产者消费者模型解析
  • 【入门|Docker】基础知识扫盲:什么是 Docker?
  • 如何利用 Java 爬虫获得某书笔记详情:实战指南
  • 【MYSQL】基本查询,表的增删查改
  • 在嵌入式系统中, 一般链路层断开多久,断开TCP为好
  • Android Studio 日志系统详解
  • 基于matlab的D2D 功率控制仿真
  • 互联网大厂Java面试:从基础到复杂场景的技术挑战
  • 使用Redission来实现布隆过滤器
  • 为 Windows 和 Ubuntu 中设定代理服务器的详细方法
  • Feign异步模式丢失上下文问题
  • OpenCV阈值处理完全指南:从基础到高级应用
  • 【AWS入门】Amazon SageMaker简介
  • ArcGIS Pro 3.4 二次开发 - 内容
  • 如何在 MongoDB 中设计文档结构?与关系型数据库的表结构设计有何不同?
  • MYSQL 故障排查与生产环境优化
  • 解决使用@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss“, timezone = “GMT+8“)时区转换无效的问题
  • 计算机网络概要
  • Word压缩解决方案
  • Spring Boot开发—— 整合Lucene构建轻量级毫秒级响应的全文检索引擎
  • TDengine 2025年产品路线图
  • vue3中element-plus修改el-tooltip的宽度
  • Ubuntu服务器部署多语言项目(Node.js/Python)方式实践
  • 计算机网络 - 2.基础协议
  • Kafka消息路由分区机制深度解析:架构设计与实现原理
  • 机器学习中采样哪些事