1 .一种分布式数据库查询的优化方法,其特征在于,所述方法包括:
从存储引擎中获取第一数据表的第一分片键和第二数据表的第二分片键;
当确定所述第一分片键与查询语句的连接键匹配,从所述存储引擎中获取所述第一数
据表的第一分片和节点映射关系;
利用所述第一分片和节点映射关系对所述第一数据表进行表扫描,得到第一扫描结
果;
当确定所述第一数据表和所述第二数据表满足相容条件,从所述存储引擎中获取所述
第二数据表的第二分片和节点映射关系;所述相容条件包括:所述第一分片键与所述第二
分片键相同,且所述第一数据表的第一分片映射函数与所述第二数据表的第二分片映射函
数一致,且所述第一数据表的逻辑分片数与所述第二数据表的逻辑分片数是整数倍关系,
且所述第一分片和节点映射关系与所述第二分片和节点映射关系一致;
利用所述第二分片和节点映射关系对所述第二数据表进行表扫描,得到第二扫描结
果;
利用所述第一分片映射函数、所述第一扫描结果和所述第二扫描结果,在对应的物理
节点上对所述第一数据表和所述第二数据表进行分片连接。
2 .根据权利要求1所述的方法,其特征在于,所述方法还包括:
当确定所述第一数据表和所述第二数据表不满足所述相容条件,获取所述第一分片映
射函数;
对所述第二数据表进行表扫描,得到第三扫描结果;
利用所述第一分片映射函数、所述第一分片和节点映射关系和所述第三扫描结果对所
述第二数据表进行数据重分布,得到重分布结果;
利用所述第一分片映射函数、所述第一扫描结果和所述重分布结果,在对应的物理节
点上对所述第一数据表和所述第二数据表进行分片连接。
3 .根据权利要求1所述的方法,其特征在于,所述当确定所述第一分片键与查询语句的
连接键匹配,从所述存储引擎中获取所述第一数据表的第一分片和节点映射关系,包括:
当确定所述第一分片键、所述第二分片键与查询语句的连接键均匹配,且所述第一数
据表的逻辑分片数多于所述第二数据表的逻辑分片数,从所述存储引擎中获取所述第一数
据表的第一分片和节点映射关系。
4 .根据权利要求3所述的方法,其特征在于,所述利用所述第一分片映射函数、所述第
一扫描结果和所述第二扫描结果,在对应的物理节点上对所述第一数据表和所述第二数据
表进行分片连接之前,所述方法还包括:
确定所述第一数据表为分片连接的左表,所述第二数据表为分片连接的右表。
5 .根据权利要求1所述的方法,其特征在于,所述第一扫描结果包括N个第一子扫描结
果,一个所述第一子扫描结果对应一个所述第一数据表的逻辑分片,所述N为大于等于2的
正整数;
所述第二扫描结果包括M个第二子扫描结果,一个所述第二子扫描结果对应一个所述
第二数据表的逻辑分片,所述M为大于等于2的正整数。
6 .根据权利要求5所述的方法,其特征在于,所述N大于所述M,所述方法还包括:
利用所述第一分片映射函数对所述第二扫描结果进行拆分,得到第四扫描结果;所述
权 利 要 求 书
1/2 页
2
评论