数据库分片的技术优势
数据库分片的技术优势
简化数据库横向扩展工作
而纵向扩展通过增加计算机硬件配置来获得收益,这种非分布式的数据库容易被计算机的存储容量和算力所限制。
提高查询响应速度
对于只拥有单个数据库且十分庞大的应用来说,随着数据量的不断增长,每次执行数据查询时返回结果集的响应速度会越来越慢,因为这个检索过程要遍历表中所有行才能找到需要的数据。
而分片技术的本质是将数据分散到多个表,这相当于多个表同时检索,并且缩小了每个表的检索范围和数量,从而能更快地返回查询结果。
降低宕机的影响
在分片的数据库中,服务器宕机造成的影响可控制在其中一个分片的范围内。宕机发生时,虽然应用的某些功能或页面暂时无法被用户访问,但相对整个系统掉线而言,这种局部功能不可用所造成的影响明显要小很多。
简化数据库横向扩展工作
而纵向扩展通过增加计算机硬件配置来获得收益,这种非分布式的数据库容易被计算机的存储容量和算力所限制。
提高查询响应速度
对于只拥有单个数据库且十分庞大的应用来说,随着数据量的不断增长,每次执行数据查询时返回结果集的响应速度会越来越慢,因为这个检索过程要遍历表中所有行才能找到需要的数据。
而分片技术的本质是将数据分散到多个表,这相当于多个表同时检索,并且缩小了每个表的检索范围和数量,从而能更快地返回查询结果。
降低宕机的影响
在分片的数据库中,服务器宕机造成的影响可控制在其中一个分片的范围内。宕机发生时,虽然应用的某些功能或页面暂时无法被用户访问,但相对整个系统掉线而言,这种局部功能不可用所造成的影响明显要小很多。
常用数据库分片架构
常用数据库分片架构

基于键的数据库分片
也被称为基于哈希的分片。就是在每个数据库分片中,新写入一列用于索引分片存储位置 ID 的数据,而通常这组索引数据是利用哈希函数来赋值的。
这种策略的特点在于它必须预设数据库分片的数量,并通过算法将数据进行平均分配,这样就可以有效避免出现数据热点(应用反应慢和网络崩溃)的情况。

基于范围的数据库分片
基于给定数据范围值来对数据做分片处理。通过应用程序代码读取数据并判断数据值的区间,然后将其写入对应的分区。这种策略的最大好处是规则明确,执行相对简单。每个分片与原始数据库有着不同的模式,且保存着不同的数据集。

基于目录的数据库分片
实现基于目录的数据库分片,首先要创建一个存储分片目录数据的表。在分片目录表中,分片的主键记录着数据的保存位置。这比基于范围的数据库分片架构更加灵活,因为它使用固定的哈希函数作为分片键值,而不需要制定值的区间。

基于键的数据库分片
也被称为基于哈希的分片。就是在每个数据库分片中,新写入一列用于索引分片存储位置 ID 的数据,而通常这组索引数据是利用哈希函数来赋值的。
这种策略的特点在于它必须预设数据库分片的数量,并通过算法将数据进行平均分配,这样就可以有效避免出现数据热点(应用反应慢和网络崩溃)的情况。

基于范围的数据库分片
基于给定数据范围值来对数据做分片处理。通过应用程序代码读取数据并判断数据值的区间,然后将其写入对应的分区。这种策略的最大好处是规则明确,执行相对简单。每个分片与原始数据库有着不同的模式,且保存着不同的数据集。

基于目录的数据库分片
实现基于目录的数据库分片,首先要创建一个存储分片目录数据的表。在分片目录表中,分片的主键记录着数据的保存位置。这比基于范围的数据库分片架构更加灵活,因为它使用固定的哈希函数作为分片键值,而不需要制定值的区间。
亚马逊云科技数据库分片相关产品
亚马逊云科技数据库分片相关产品
新用户注册,可免费体验 12 个月