首页 > 其他分享 >分库分表 Sharding: 2. 分库分表种类

分库分表 Sharding: 2. 分库分表种类

时间:2022-10-16 17:32:44浏览次数:41  
标签:分库 db Sharding 拆分 分片 分表 orders

2.    分库分表种类
拆分数据库有垂直拆分和水平拆分。
2.1    垂直分片
按照业务拆分的方式称为垂直分片,又称为纵向拆分,它的核心理念是专库专用。 在拆分之前,一个数据库由多个数据表构成,每个表对应着不同的业务。而拆分之后,则是按照业务将表进行归类,分布到不同的数据库中,从而将压力分散至不同的数据库。 下图展示了根据业务需要,将用户表和订单表垂直分片到不同的数据库的方案。

分库分表 Sharding: 2. 分库分表种类_Bee

垂直分片往往需要对架构和设计进行调整。通常来讲,是来不及应对互联网业务需求快速变化的;而且,它也并无法真正的解决单点瓶颈。 垂直拆分可以缓解数据量和访问量带来的问题,但无法根治。如果垂直拆分之后,表中的数据量依然超过单节点所能承载的阈值,则需要水平分片来进一步处理。垂直拆分,一般是为了划分服务,不同的团队负责的服务对应的表统一到不同的库中,利于开发和维护。

2.2    水平分片
水平分片又称为横向拆分。相对于垂直分片,它不再将数据根据业务逻辑分类,而是通过某个字段(或某几个字段),根据某种规则将数据分散至多个库或表中,每个分片仅包含数据的一部分。 例如:根据主键分片,偶数主键的记录放入 0 库(或表),奇数主键的记录放入 1 库(或表),如下所示。

select * from orders where id=1;

select * from orders where id=2;

水平分片从理论上突破了单机数据量处理的瓶颈,并且扩展相对自由,是数据分片的标准解决方案。

分库分表种类介绍
2.3    分库分表种类介绍
水平分表从具体实现上又可以分为 3 种:只分表、只分库、分库分表,下图展示了这三种情况:

分库分表 Sharding: 2. 分库分表种类_Sharding_02

2.3.1    只分表
只分表:将 db 库中的 orders 表拆分为 2 个分表,orders0 和 orders1,这两个表还位于同一个库中。
2.3.2    只分库
只分库:将 db 库拆分为 db0 和 db1 两个库,同时在 db0 和 db1 库中各自新建一个 orders 表,db0. orders 表和 db1. orders 表中各自只存原来的 db. orders 表中的部分数据。
2.3.3    分库分表
分库分表:将 db 库拆分为 db0 和 db1 两个库,db0 中包含 orders0、orders1 两个分表,db1 中包含 orders3、orders4 两个分表。
在分库分表的情况下,数据是如何拆分的呢?假设 db 库的 orders 表中原来有 4000W 条数据,现在将 db 库拆分为 2 个分库 db0 和 db1,orders 表拆分为 orders0、orders1、orders2、orders3 四个分表,每个分表存储 1000W 条数据 (可能因分片的值,数量略有差距)。    分片主要就是指这种分库分表.

标签:分库,db,Sharding,拆分,分片,分表,orders
From: https://blog.51cto.com/u_15822049/5760456

相关文章

  • “分库分表" ?选型要慎重,否则会失控!
    恭喜你,贵公司终于成长到一定规模,需要考虑高可用,甚至分库分表了。但你是否知道分库分表需要哪些要素?拆分过程是复杂的,提前计划,不要等真正开工,各种意外的工作接踵而至,以至失控......
  • 原来ShardingSphere也用雪花算法
    原来ShardingSphere也用雪花算法分布式主键的生成有很多实现方式,比如百度开源的UidGenerator、美团的Leaf、以及众所周知的雪花算法,而在分库分表的场景下,id要保证唯一性,分......
  • SPI机制在ShardingSphere中的应用
    SPI机制在ShardingSphere中的应用之前我们讲过一篇SPI机制在Skywalking中的应用,这篇我们说一说ShardingSphere又是如何使用SPI机制的Sql解析器Sql解析器的功能就是用来解......
  • 使用 sharding-jdbc 进行分表
    由于单表所支撑的数据量有限,打算使用shardingjdbc进行分库分表。由于之前阅读过相关的博客,考虑使用基因法进行分表。此时shardingspherejdbc的发布版本已更新到5.2......
  • 分库分表之第五篇
    分库分表之第五篇​​9.案例​​​​9.1.需求描述​​​​9.2.数据库设计​​​​9.3.环境说明​​​​9.4.环境准备​​​​9.4.1.mysql主从同步(windows)​​​​9.4.2.初始......
  • 分库分表之第二篇
    分库分表之第二篇​​2.Sharding-JDBC快速入门​​​​2.1需求说明​​​​2.2.环境建设​​​​2.2.1环境说明​​​​2.2.2创建数据库​​​​2.2.3约会maven依赖​​​......
  • ShardingSphere的强制路由
    ShardingSphere的强制路由随着项目的越来越庞大,用户量越来越多,分库分表的操作在工作中是不可避免的,而市场上分库分表的解决方案有很多,ShardingSphere就是经常使用到的一种......
  • 分库分表 Sharding: 4. 路由 / 映射:如何找到要操作的表
    4.   路由/映射:如何找到要操作的表4.1   实际表的分布种类基本表与实际表的映射关系,可分为均匀顺序分布,均匀轮询分布,仅均匀分布和自定义分布4种形式。现通过例......
  • 分库分表 Sharding: 5. 分片流程与 Sharding 核心问题
    5.   分片流程与Sharding核心问题5.1   Bee(JDBC部分)的转换流程Bee基于JDBC操作数据库的流程如下:1)使用实体Javabean(+条件表达式Condtion,对应SQL......
  • 分库分表 Sharding:7. Bee 对分片的优化
    7.   Bee对分片的优化7.1   对一库一表的优化最终路由到一库一表,即不会造成分片,因此Bee将其优化为单点操作。7.2   对一库多表的分页查询的优化对一库多表的......