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

数据库架构演变过程

接下来用电商作为案例分享
电商包括的基本功能:商品、订单、用户

1.单机称王的时代

业务刚刚开始,一般用单服务、单机器就快速落地
在这里插入图片描述

2.单机+缓存的时代

当业务取的初步成功,用户量上涨,单机数据库就无法支撑业务了,这时候我们可以通过缓存+单机的方式解决
在这里插入图片描述

3.主从复制:读写分离

当业务快速发展,单机数据库无法支撑业务,可以采用主从复制:读写分离的数据库模式
在这里插入图片描述

4.垂直拆分业务数据

当业务再次增长,单个主从模式也无法支撑业务的时候,就可以根据业务拆分,实现业务级别的多个主从
在这里插入图片描述

5.水平分表

垂直分库解决单个数据库的压力,但是当单表数据量增长超过2000W的时候,就需要对单表进行水平分表
在这里插入图片描述

6.集群部署

当业务指数增长后,垂直分库和水平分表后,数据库的资源得到合理利用,但是多个数据库仍然在相同的集群里面,无法解决单集群带来的弊端,可以实现集群部署

在这里插入图片描述

7.多元化数据模型

当我们实现了集群模式之后,对于数据库利用就达到了最大化,后面也没有针对数据库更好的扩展方式了,这时候我们就可以考虑是否引入多种数据模型,各司其职,比如ES做关键字检索,redis做内存数据库,mysql负责存储数据等

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • vagrant 创建虚拟机
  • 使用notepad++将shell脚本转为UNIX格式方法(主要差别在换行符)
  • SpringBoot集成google登陆快速入门Demo
  • 运放篇——理想运放与实际运放
  • Docker 安装与配置 Docker Registry 指南
  • Linux——文件系统层次结构,绝对路径
  • 膨胀罐的安装注意事项
  • torch.unbind()拆分张量练习过程
  • 基础算法--递推算法[信奥一本通]
  • 基于x86 平台opencv的图像采集和seetaface6的图像质量评估功能
  • Chromium编译指南2024 - Android篇:安装并运行(九)
  • 5 自研rk3566/rk3588+rgbd相机之v4l2-tof出图框架开发
  • Linux之RabbitMQ集群部署
  • 10. 指针数组和数组指针详细区别
  • 通信技术和协议
  • [译] React v16.8: 含有Hooks的版本
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 【EOS】Cleos基础
  • Angular 响应式表单之下拉框
  • bearychat的java client
  • django开发-定时任务的使用
  • Github访问慢解决办法
  • iOS小技巧之UIImagePickerController实现头像选择
  • Iterator 和 for...of 循环
  • JavaScript 奇技淫巧
  • LeetCode算法系列_0891_子序列宽度之和
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • Vim 折腾记
  • 百度小程序遇到的问题
  • 猴子数据域名防封接口降低小说被封的风险
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 基于web的全景—— Pannellum小试
  • 排序算法学习笔记
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 正则表达式小结
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​​​​​​​开发面试“八股文”:助力还是阻力?
  • ​低代码平台的核心价值与优势
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (2024)docker-compose实战 (9)部署多项目环境(LAMP+react+vue+redis+mysql+nginx)
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (二)丶RabbitMQ的六大核心
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (七)Java对象在Hibernate持久化层的状态
  • (转) ns2/nam与nam实现相关的文件
  • (转)setTimeout 和 setInterval 的区别
  • .FileZilla的使用和主动模式被动模式介绍
  • .jks文件(JAVA KeyStore)
  • .Net 6.0 处理跨域的方式
  • .net framework 4.0中如何 输出 form 的name属性。
  • .net framework4与其client profile版本的区别
  • .Net mvc总结