Sharding 数据库分片(Database Sharding)

Sharding 数据库分片(Database Sharding)

介绍

任何能够看到显着增长的应用程序或网站最终都将需要扩展,以适应流量的增长。对于数据驱动的应用程序和网站,至关重要的是扩展方式必须确保其数据的安全性和完整性。很难预测一个网站或应用程序将变得多么流行,或者保持这种流行程度将持续多长时间,这就是为什么某些组织选择允许其动态扩展其数据库的数据库体系结构的原因。

在这篇概念文章中,我们将讨论一种这样的数据库体系结构:分片数据库。近年来,分片一直备受关注,但是许多人对分片是什么,或者对分片数据库可能有意义的场景没有清楚的了解。我们将讨论分片的含义,其主要优点和缺点以及一些常见的分片方法。

##什么是分片?(sharding)

分片是一种与水平分区有关的数据库体系结构模式,这种模式是将一个表的行分为多个不同的表(称为分区)的实践。每个分区都有相同的架构和列,但行也完全不同。同样,每个分区中保存的数据都是唯一的,并且与其他分区中保存的数据无关。

考虑水平分区与垂直分区之间的关系可能会有所帮助。在垂直分区的表中,整个列被分离出来并放入新的不同表中。一个垂直分区中保存的数据与所有其他垂直分区中的数据无关,并且每个数据都包含不同的行和列。下图说明了如何对表进行水平和垂直分区:
在这里插入图片描述
分片涉及将一个人的数据分成两个或更多个较小的块,称为逻辑分片。然后,逻辑碎片将分布在单独的数据库节点上,这称为物理碎片,可以容纳多个逻辑碎片。尽管如此,保存在所有分片中的数据共同代表了整个逻辑数据集。

数据库分片代表了无共享架构。这意味着分片是自治的。他们不共享任何相同的数据或计算资源。但是,在某些情况下,将某些表复制到每个分片中作为参考表可能是有意义的。例如,假设有一个应用程序数据库,该数据库依赖于固定的转换率来进行重量测量。通过将包含必要转换率数据的表复制到每个分片中,将有助于确保查询所需的所有数据都保存在每个分片中。

通常,分片是在应用程序级别实现的,这意味着应用程序包括定义用于向其传输读和写的分片的代码。但是,某些数据库管理系统具有内置的分片功能,使您可以直接在数据库级别实现分片。

给出了分片的一般概述之后,让我们看一下与该数据库体系结构相关的一些正面和负面信息。

分片的好处

分片数据库的主要吸引力在于它可以有助于促进横向扩展&

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值