当前位置:首页 > 经验 >

数据库系统典型架构(数据库系统设计框架)

来源:原点资讯(www.yd166.com)时间:2022-11-06 10:07:43作者:YD166手机阅读>>

本文,将介绍数据库架构设计中的一些基本概念,常见问题以及对应解决方案,为了便于读者理解,将以“用户中心”数据库为例,讲解数据库架构设计的常见玩法。

一、用户中心

用户中心是一个常见业务,主要提供用户注册、登录、信息查询与修改的服务,其核心元数据为:

User(uid, uname, passwd, sex, age,nickname, …)

其中:

  • uid为用户ID,主键
  • uname, passwd, sex, age, nickname, …等为用户的属性

数据库设计上,一般来说在业务初期,单库单表就能够搞定这个需求。

二、图示说明

为了方便大家理解,后文图片说明较多,其中:

  • “灰色”方框,表示service,服务
  • “紫色”圆框,标识master,主库
  • “粉色”圆框,表示slave,从库
三、单库架构

数据库系统典型架构,数据库系统设计框架(1)

最常见的架构设计如上:

  • user-service:用户中心服务,对调用者提供友好的RPC接口
  • user-db:一个库进行数据存储
四、分组架构

数据库系统典型架构,数据库系统设计框架(2)

什么是分组?

:分组架构是最常见的一主多从,主从同步,读写分离数据库架构:

  • user-service:依旧是用户中心服务
  • user-db-M(master):主库,提供数据库写服务
  • user-db-S(slave):从库,提供数据库读服务

主和从构成的数据库集群称为“组”。

分组有什么特点?

:同一个组里的数据库集群:

  • 主从之间通过binlog进行数据同步
  • 多个实例数据库结构完全相同
  • 多个实例存储的数据也完全相同,本质上是将数据进行复制

分组架构究竟解决什么问题?

:大部分互联网业务读多写少,数据库的读往往最先成为性能瓶颈,如果希望:

  • 线性提升数据库读性能
  • 通过消除读写锁冲突提升数据库写性能
  • 通过冗余从库实现数据的“读高可用”

此时可以使用分组架构,需要注意的是,分组架构中,数据库的主库依然是写单点。

一句话总结,分组解决的是“数据库读写高并发量高”问题,所实施的架构设计。

五、分片架构

数据库系统典型架构,数据库系统设计框架(3)

什么是分片?

:分片架构是大伙常说的水平切分(sharding)数据库架构:

  • user-service:依旧是用户中心服务
  • user-db1:水平切分成2份中的第一份
  • user-db2:水平切分成2份中的第二份

分片后,多个数据库实例也会构成一个数据库集群。

水平切分,到底是分库还是分表?

:强烈建议分库,而不是分表,因为:

  • 分表依然公用一个数据库文件,仍然有磁盘IO的竞争
  • 分库能够很容易的将数据迁移到不同数据库实例,甚至数据库机器上,扩展性更好

水平切分,用什么算法?

:常见的水平切分算法有“范围法”和“哈希法”:

数据库系统典型架构,数据库系统设计框架(4)

首页 12下一页

栏目热文

数据库系统原理及应用(数据库系统发展过程)

数据库系统原理及应用(数据库系统发展过程)

一、摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,...

2022-11-06 10:00:09查看全文 >>

数据库系统原理课后题(数据库系统的基本原理答案)

数据库系统原理课后题(数据库系统的基本原理答案)

更多真题详情可联系冯老师,...

2022-11-06 09:43:00查看全文 >>

数据库系统原理详细版(数据库的原理图解)

数据库系统原理详细版(数据库的原理图解)

数据库系统原理【课程代码:04735】模拟测试《数据库系统原理》模拟测试一一、单项选择题:本大题共 15 小题,每小题 ...

2022-11-06 09:51:32查看全文 >>

数据库系统架构图(数据库系统简介)

数据库系统架构图(数据库系统简介)

当今世界是一个充满着数据的互联网世界,各处都充斥着大量的数据。即这个互联网世界就是数据世界。支撑这个数据世界的基石就是数...

2022-11-06 09:57:13查看全文 >>

数据库系统原理与开发(数据库原理及实现方法)

数据库系统原理与开发(数据库原理及实现方法)

一、源码特点 JSP 公司仓储系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的...

2022-11-06 09:59:04查看全文 >>

数据库系统基础(数据库系统基础笔记)

数据库系统基础(数据库系统基础笔记)

1、数据库底层MySQL数据库的底层是B 树。说到B 树,先说下B树,B树也叫多路平衡查找树,所有的叶子节点位于同一层,...

2022-11-06 10:09:42查看全文 >>

数据库系统原理学习(数据库系统概论学习方法)

数据库系统原理学习(数据库系统概论学习方法)

一个查询语句的例子 在执行下面这个查询语句时的执行的流程是怎么样的?MySQL> select * from t...

2022-11-06 09:32:53查看全文 >>

常见的数据库系统(目前流行的数据库系统有哪些)

常见的数据库系统(目前流行的数据库系统有哪些)

图片来源@视觉中国文 | 钛资本研究院中国数据库市场将迎来高增长态势,原因有四点:首先是政策利好,国家大力支持国产数据库...

2022-11-06 10:07:38查看全文 >>

梦见好多熟肉是啥意思(梦见好多熟肉好吗)

梦见好多熟肉是啥意思(梦见好多熟肉好吗)

呼。洛倾城缓缓吐出一口浊气,嘴角泛起一丝微笑。如果没有一代老祖的帮助,别说剑痴了,就算叶尘她都打不过。武灵儿与忘仙宗众弟...

2022-11-06 09:55:30查看全文 >>

梦见生肉和熟肉是什么意思(梦见自己吃熟肉是啥意思)

梦见生肉和熟肉是什么意思(梦见自己吃熟肉是啥意思)

(内容有些专业,感兴趣的读者请耐心理解看完!想直接看解梦的读者,可以拉倒中后部分)做梦,对我们来说都不陌生。有时候我们会...

2022-11-06 09:55:43查看全文 >>

文档排行