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

亿级流量系统架构设计与实战(五)

高并发写场景方案 1 : 数据分片之数据库分库分表

数据分片思想:可以将资源拆开分为多份,拆分的多份小的资源一起构成完整资源。

分库和分表

分库: 分库指的是将数据库拆分为多个小数据库,原来存储在单个数据库中的数据被分开存储到各个小数据库中。

分表:分表指的是将单个数据表拆分为多个结构完全一致的表,原来存储在单个数据表中的数据被分开存储到各个表中。

大部分互联网应用都绕不开数据库分库分表 , 因为随着业务的不断发展和用户活跃度的提高 , 数据库会面临诸多挑战。

  • 数据量大(分表解决)
    • 影响性能:当业务发展到一定阶段时 , 数据库中已存储了海量的存量数据 , 每个数据表中都存储了千万行甚至上亿行数据 , 业务方对数据表执行 SQL 语句时扫描的数据行增多 , 性能开销被严重放大 。
    • 磁盘 I/O 增加:以 MySQL 数据库为例 , 如果单个数据表中的数据量超过 2000 万行 , 则会导致表结构 B+ 树的层级增多 , 数据读 / 写的磁盘 I/O操作次数增加 。
    • DDL 语句执行缓慢: 在涉及数据表结构修改的场景下 , DDL 语句执行完成消耗的时间令人难以接受 。
  • 并发量大(分库解决)
    • 耗尽服务器资源: 海量用户访问单个数据库 , 很快会达到数据库处理能力的上限 , 无论是数据库的最大请求连接数 、 CPU 资源 、 内存资源还是网络带宽均有可能成为性能瓶颈。

分表的目的是提高一台服务器的单数据库处理能力 , 而分库的目的是充分利用多台服务器资源。

在拆分维度上 , 分库分表可以分为垂直拆分和水平拆分 , 其中垂直拆分侧重基于业务拆分 , 而水平拆分侧重基于数据拆分。

垂直拆分

垂直拆分有垂直分库,垂直分表。

垂直分库

按照业务分库,每一个业务对应一个数据库。其核心是 “ 专库专用

  • **解耦:**垂直分库可以实现不同业务归属的数据解耦 , 将不同业务数据交给各业务研发团队独立维护 , 有效保证了各团队的职责单一 。
  • 提高并发量:在高并发场景下,由于垂直分库使用不同的服务器维护不同业务的数据库 , 数据库并发量得到一定程度的提升

垂直分表

垂直分表指的是将一个数据表按照字段分成多个表 , 每个表存储其中一部分字段 。

分表的依据可以是字段被频繁访问的频率 、 字段值大小等。

  • 垂直分表可以很好地**隔离核心数据和非核心数据 **。

  • 数据库是以行为单位将数据加载到内存中的 , 通过垂直分表拆分以后核心数据表的字段大多访问频率较高 , 且字段值也都较小 。 因此可以将更多的数据加载到内存中 , 来提高查询的命中率 , 减少磁盘 I/O, 以此来提升数据库性能.

  • 垂直分表仅适合数据量不大字段较多的数据存储场景 。

  • 由于拆分后各表的数据行没有变化 , 因此垂直分表并没有消除单表数据量过大的问题.

水平拆分

水平拆分同样包括水平分库水平分表。

水平分库

水平分库是指将同一个数据库中的数据按照某种规则拆分到多个数据库中

这些数据库可以被部署在不同的服务器上 。 并且每个数据库拥有哪些表以及每个表的结构都与拆分

相关文章:

  • Python 识别图片上标点位置
  • NVM完全指南:安装、配置与最佳实践
  • stm32常见错误
  • 网站网页经常 400 错误,清缓存后就好了的原因剖析
  • Python赋能自动驾驶:如何优化路径规划,让AI驾驶更聪明?
  • AI驱动的Kubernetes管理:kubectl-ai 如何简化你的云原生运维
  • SpringBoot3集成Mybatis
  • iPhone 和 Android 在日期格式方面的区别
  • 报表的那些事:四部演进史——架构视角下的技术跃迁与实战思考
  • java中try..catch如何捕捉超时的情况
  • LeetCode:对称二叉树
  • 编程日志4.27
  • RPA与After Effects 2024深度融合:自动化影视特效全链路革命
  • Unity垃圾回收(GC)
  • Spring Boot 中 AOP 的自动装配原理
  • 如何使用极狐GitLab 软件包仓库功能托管 npm?
  • 战术级微波干扰系统:成都鼎轻量化装备如何实现全频段智能压制?
  • http Status 400 - Bbad request 网站网页经常报 HTTP 400 错误,清缓存后就好了的原因
  • Java程序题案例分析
  • Nvidia-smi 运行失败(Failed to initialize NVML: Driver/library version mismatch)
  • 马上评丨学术不容“近亲繁殖”
  • 东方红资管官宣:41岁原国信资管董事长成飞出任新总经理
  • 三星“七天机”质保期内屏幕漏液被要求自费维修,商家:系人为损坏
  • 央行:下阶段将实施好适度宽松的货币政策
  • 中方就乌克兰危机提出新倡议?外交部:中方立场没有变化
  • 复旦发文缅怀文科杰出教授裘锡圭:曾提出治学需具备三种精神