通过与 Jira 对比,让您更全面了解 PingCode

  • 首页
  • 需求与产品管理
  • 项目管理
  • 测试与缺陷管理
  • 知识管理
  • 效能度量
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案

25人以下免费

目录

数据库分片的方法有哪些

数据库分片方法有:1、基于范围的分片;2、哈希分片;3、目录分片;4、地理分片。数据库将信息存储在由列和行组成的多个数据集中,数据库分片将单个数据集拆分为分区或分片。数据库分片方法对分片键应用不同的规则,以确定特定数据行的正确节点。

一、数据库分片的方法

数据库分片方法对分片键应用不同的规则,以确定特定数据行的正确节点。以下是常见的分片架构。

1、基于范围的分片

基于范围的分片(或动态分片)根据值的范围拆分数据库行。然后,数据库设计人员将分片键分配给相应的范围。例如,数据库设计人员根据客户名称中的第一个字母对数据进行分区.

在将客户记录写入数据库时,应用程序会通过检查客户的名称确定正确的分片键。然后,应用程序将键与其物理节点进行匹配,并将该行存储在该计算机上。同样,应用程序在搜索特定记录时执行反向匹配。

优点和缺点

根据数据值,基于范围的分片可能会导致单个物理节点上的数据过载,但是它更容易实现。

2、哈希分片

哈希分片通过使用称为哈希函数的数学公式将分片键分配给数据库的每一行。哈希函数从行中获取信息并生成哈希值。应用程序使用哈希值作为分片键,并将信息存储在相应的物理分片中。

软件开发人员使用哈希分片在多个分片之间均匀分布数据库中的信息。

优点和缺点

尽管哈希分片会导致物理分片之间的数据分布均匀,但它不会根据信息的含义来分离数据库。因此,在向计算环境中添加更多物理分片时,软件开发人员可能会遇到重新分配哈希值的困难。 

3、目录分片

目录分片使用查找表将数据库信息与相应的物理分片进行匹配。查找表类似于电子表格中的表,它将数据库列与分片键关联。

当应用程序将服装信息存储在数据库中时,它会参考查找表。如果一件衣服是蓝色的,应用程序会将信息存储在相应的分片中。 

优点和缺点

软件开发人员之所以使用目录分片,是因为它非常灵活。每个分片都是数据库的有意义的表示,不受范围的限制。但是,如果查找表包含错误信息,目录分片会失败。 

4、地理分片

地理分片根据地理位置拆分和存储数据库信息。例如,一个约会服务网站使用数据库存储来自各个城市的客户信息。

软件开发人员使用城市作为分片键。他们将每个客户的信息存储在地理位置位于相应城市的物理分片中。 

优点和缺点

由于分片与提出请求的客户之间的距离较短,因此地理分片允许应用程序更快地检索信息。如果数据访问模式主要基于地理位置,则效果很好。但是,地理分片也可能导致数据分布不均匀。 

二、数据库分片的工作原理

数据库将信息存储在由列和行组成的多个数据集中。数据库分片将单个数据集拆分为分区或分片。每个分片都包含独特的信息行,您可以跨多台计算机(称为节点)单独存储这些信息。所有分片都在单独的节点上运行,但共享原始数据库的架构或设计。 

1、分片

分区的数据块称为逻辑分片。存储逻辑分片的计算机称为物理分片或数据库节点。一个物理分片可以包含多个逻辑分片。 

2、分片键

软件开发人员使用分片键来确定如何对数据集进行分区。数据集中的一列决定了哪些数据行组合在一起形成分片。数据库设计人员从现有列中选择一个分片键或创建一个新分片键。

3、无共享架构

数据库分片在无共享架构上运行。每个物理分片都独立运行,与其他分片没有关系。只有包含您请求的数据的物理分片才会为您并行处理数据。 

软件层协调来自多个分片的数据存储和访问。例如,某些类型的数据库技术内置了自动分片功能。软件开发人员还可以在其应用程序中编写分片代码,以存储或检索正确分片中的信息。 

以上就是关于数据库分片的方法以及数据库分片的工作原理的全部内容了,希望对你有所帮助。

相关文章