一、分片的定义和作用
定义:分布式数据库中数据的存储单位成为片段。对全局数据库的划分叫做分片。划分的结果就是片段。每个片段可以保存在一个以上的场地(服务器)。
作用:
1、减少网络传输量
对数据进行复制存储,目的是可以就近访问所需数据副本,减少网络上的数据传输量。
2、增大事务处理的局部性
3、提高数据的可用性和查询效率。
4、负载均衡。
二、分片设计过程
分片过程是将全局数据进行逻辑划分和实际物理分配过程。全局数据由分片成各个片段数据,各个片段分配到不同的场地(服务器)上。
全局数据库----->片段数据库-------->物理数据库。
三、分片原则
在设计分布式数据库的时候,设计者必须考虑数据如何分布在各个场地上,也就是全局数据应该如何进行逻辑划分和物理划分。哪些数据应该分布式存放,哪些不需要分布式存放,哪些数据需要复制。对系统惊醒全盘考虑,使系统性能最优。但是无论如何进行分片都应该遵循以下原则:
1、完备性:所有全局数据都要映射到某个片段上。
2、可重构性:所有片段必须可以重新构成全局数据。
3、不相交性:划分的个片段所包含的数据无交集。
分片有三种方式:水平分片、垂直分片、混合分片。
四、水平分片
水平分片是将数据按照元组来划分,在关系数据库中也就是根据属性的条件按照行划分,该属性叫做分片属性,条件就是分片条件。
1、基本水平分片
根据关系表本身的属性分片
2、导出水平分片
分片属性不是该关系表中的属性。
五、垂直分片
垂直分片是把一个关系表按照列来分成片段,各个片段之间除了主键外不能有交集。
水平和垂直分片的结合五、混合分片