1 .一种分布式数据库的分片方法,其特征在于,包括:
获取待处理数据库的表对象的第一信息,所述第一信息包括所述表对象的基础数据
量、关联表和日志信息;
根据所述第一信息,确定所述表对象的分片类型,所述分片类型包括单表、广播表和分
片表;
根据所述分片类型,对所述表对象进行分片。
2 .根据权利要求1所述的分片方法,其特征在于,所述的根据所述第一信息,确定所述
表对象的分片类型,包括:
响应于所述表对象的SQL语句只包含插入语句,所述表对象的基础数据量小于或等于
第一预设阈值,且其插入语句频次小于或等于第二预设阈值,则判定为单表;
响应于所述表对象的SQL语句只包含查询语句,所述表对象的基础数据量小于或等于
第三预设阈值,且其关联表个数超过第四预设阈值,则判定为广播表;
若否,则判定为分片表。
3 .根据权利要求1所述的分片方法,其特征在于,所述的根据所述分片类型,对所述表
对象进行分片,包括:
响应于所述表对象为单表,将所述表对象存储在一个数据库节点中;
响应于所述表对象为广播表,将所述表对象存储在所有数据库节点中;
响应于所述表对象为分片表,根据第一预设分片键算法生成分片键,并根据预设分片
算法生成分片表,存储在多个数据库节点中。
4 .根据权利要求3所述的分片方法,其特征在于,所述第一预设分片键算法包括:
获取预设分片键策略,所述预设分片键策略包括关联优先策略;
响应于所述预设分片键策略为关联优先策略,判断所述表对象的SQL语句是否包含关
联字段;
若包含关联字段,则将关联字段中频次最高者设置为分片键;若未包含关联字段,则判
断所述SQL语句是否包含过滤字段;
在所述SQL语句包含过滤字段的情况下,将过滤字段中频次最高者设置为分片键;在所
述SQL语句未包含所述过滤字段的情况下,根据第二预设分片键算法生成分片键;
其中,所述第二预设分片键算法包括:
判断所述表对象是否有主键;
若有主键,则以主键为分片键;若无主键,则判断所述表对象是否有唯一索引;
在所述表对象有唯一索引的情况下,以唯一索引为分片键;在所述表对象无唯一索引
的情况下,以第一列为分片键。
5 .根据权利要求3所述的分片方法,其特征在于,所述第一预设分片键算法包括:
获取预设分片键策略,所述预设分片键策略包括过滤优先策略;
响应于所述预设分片键策略为过滤优先策略,判断所述表对象的SQL语句是否包含过
滤字段;
若包含过滤字段,则将过滤字段中频次最高者设置为分片键;若未包含过滤字段,则判
断所述SQL语句是否包含关联字段;
在所述SQL语句包含关联字段的情况下,将关联字段中频次最高者设置为分片键;在所
权 利 要 求 书
1/2 页
2
相关文档
评论